1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/venyowong-Resader

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 10:55 0322d49

Реадер

Реадер — это интегрированный сервис RSS, который включает в себя фоновые задачи по сбору данных по расписанию, API-сервисы и ридер. Сервис предназначен для реализации лёгкого и расширяемого монолитного сервиса.

  1. Лёгкий: минимальные требования к развёртыванию Реадера включают базу данных MySQL и сам сервис. Их можно развернуть на базовой машине 1C1G, что обеспечит нормальную работу сервиса.
  2. Расширяемый: при достижении определённого уровня трафика Реадер может быть расширен путём развёртывания нескольких экземпляров для распределения нагрузки. Однако следует учесть, что фоновые задачи и API-интерфейсы разрабатываются вместе, поэтому фоновые задачи должны быть настроены как один экземпляр (см. конфигурацию UseScheduler в API-сервисе, которая указывает, следует ли включать фоновые задачи). Если существует несколько экземпляров сервиса, необходимо также развернуть Redis в качестве решения для кэширования для обеспечения согласованности кэшированных данных. В случае если API-сервис не настроен на использование Redis, будет использоваться память в качестве кэша.

Компиляция и развёртывание API-сервиса

Поскольку код временно нестабилен, релиз-пакеты пока недоступны. Можно самостоятельно клонировать исходный код и скомпилировать его локально.

  1. Установите .net core, рекомендуется установить версию SDK .net 5.0 или выше.
  2. Установите MySQL.
  3. Выполните git clone https://gitee.com/venyowong/Resader и перейдите в каталог Resader/src/api.
  4. Скопируйте файл appsettings.Staging.json, переименуйте его в appsettings.Production.json и измените строку подключения MySQL.
  5. Запустите команду dotnet run. Если вы видите следующий вывод журнала, это означает, что сервис успешно запущен:
[2021-09-18 11:02:37 INF] [] Default Quartz.NET properties loaded from embedded resource file
[2021-09-18 11:02:37 INF] [] Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl
[2021-09-18 11:02:37 INF] [] Quartz Scheduler v.3.2.4.0 created.
[2021-09-18 11:02:37 INF] [] RAMJobStore initialized.
[2021-09-18 11:02:37 INF] [] Scheduler meta-data: Quartz Scheduler (v3.2.4.0) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'Quartz.Core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'Quartz.Simpl.DefaultThreadPool' - with 10 threads.
  Using job-store 'Quartz.Simpl.RAMJobStore' - which does not support persistence. and is not clustered.

[2021-09-18 11:02:37 INF] [] Quartz scheduler 'DefaultQuartzScheduler' initialized
[2021-09-18 11:02:37 INF] [] Quartz scheduler version: 3.2.4.0
[2021-09-18 11:02:37 INF] [] JobFactory set to: Resader.Api.Quartz.CustomJobFactory
[2021-09-18 11:02:37 INF] [] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[2021-09-18 11:02:37 INF] [] Trigger: Resader.AutoRecoveryJob_RightNow Job: Resader.AutoRecoveryJob TriggerFired
[2021-09-18 11:02:37 INF] [] Trigger: Resader.FetchJob_Trigger2 Job: Resader.FetchJob TriggerFired
[2021-09-18 11:02:37 INF] [] Trigger: Resader.SaveReadRecordJob_RightNow Job: Resader.SaveReadRecordJob TriggerFired
[2021-09-18 11:02:37 INF] [] Trigger: Resader.SaveReadRecordJob_RightNow Job: Resader.SaveReadRecordJob TriggerComplete Runtime: 00:00:00.2277788
[2021-09-18 11:02:37 INF] [] Trigger: Resader.AutoRecoveryJob_RightNow Job: Resader.AutoRecoveryJob TriggerComplete Runtime: 00:00:00.4092778
[2021-09-18 11:02:41 INF] [] Trigger: Resader.FetchJob_Trigger2 Job: Resader.FetchJob TriggerComplete Runtime: 00:00:04.6044165
[2021-09-18 11:02:42 INF] [] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.
[2021-09-18 11:02:42 INF] [] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.
[2021-09-18 11:02:42 INF] [] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED Shutdown complete.
  1. Если вы хотите включить Redis, настройте его на том же уровне, что и MySQL:
"Redis": {
    "ConnectionString": "localhost",
    "DefaultDb": 0
}
  1. Если вы хотите отключить планировщик задач, установите UseScheduler в файле appsettings.json равным false.
  2. Если Redis включён и у вас есть несколько экземпляров, и вы хотите отключить восстановление данных для некоторых экземпляров, установите AutoRecovery в файле appsettings.json равным false. Если стратегия кэширования использует память, обязательно установите значение true.
  3. Чтобы уменьшить пространство кэша, вы можете изменить конфигурацию ArticleMonths в файле appsettings.json. Эта конфигурация указывает количество месяцев данных статей. Если установлено значение 3, будут отображаться статьи только за последние три месяца. Если установлено меньше или равно 0, будут показаны все данные.

Упаковка PWA-страницы

  1. Перейдите в каталог Resader/src/pwa.
  2. Выполните команду npm install.
  3. Выполните команду npm run build.
  4. Поместите папку dist в wwwroot API-службы или смонтируйте её на службе nginx.

Онлайн-ссылка PWA

https://venyo.cn/resader/pwa/

Примечание: поскольку эта страница адаптирована только для мобильных устройств, рекомендуется открывать её на мобильном устройстве или использовать функцию эмуляции устройства в браузере.

Скриншоты PWA-страниц

Главная страница:

![Главная страница](/screenshots/главная страница.png «Главная страница»)

Избранное:

![Избранное](/screenshots/избранное.png «Избранное»)

Я:

![Я](/screenshots/я.png «Я»)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/venyowong-Resader.git
git@api.gitlife.ru:oschina-mirror/venyowong-Resader.git
oschina-mirror
venyowong-Resader
venyowong-Resader
master