Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Дадаць sidekiq для фонавай адпраўкі email і паведамленняў #562

Open
2 tasks
yahor opened this issue May 15, 2022 · 11 comments

Comments

@yahor
Copy link
Contributor

yahor commented May 15, 2022

https://sidekiq.org/

  • Вынесці месаджы ТГ у асобныя сэрвісы і джобы
  • Вынесці адпраўку эмэйлаў у фонавыя джобы
@yahor yahor self-assigned this May 15, 2022
@yahor yahor changed the title Дадаць sidekiq для месаджаў і паведамленняў Дадаць sidekiq для email і паведамленняў May 15, 2022
@yahor yahor changed the title Дадаць sidekiq для email і паведамленняў Дадаць sidekiq для фонавай адпраўкі email і паведамленняў May 15, 2022
@abitrolly
Copy link
Member

И как его дебажить?

@jekhor
Copy link
Member

jekhor commented May 15, 2022 via email

@yahor
Copy link
Contributor Author

yahor commented May 15, 2022

@abitrolly у сайдкіка свой дашбоард і логі.
Для памылак можна таксама сэрвіс https://github.com/smartinez87/exception_notification прычапіць.

ExceptionNotification relies on notifiers to deliver notifications when errors occur in your applications. By default, 8 notifiers are available:
Datadog notifier
Email notifier
HipChat notifier
IRC notifier
Slack notifier
Mattermost notifier
Teams notifier
Amazon SNS
Google Chat notifier
WebHook notifier

@jekhor дык сэнс ў тым, што няма ў нас фонавых задач:

  # Use a real queuing backend for Active Job (and separate queues per environment).
  # config.active_job.queue_adapter     = :resque
  # config.active_job.queue_name_prefix = "hspace_production"

Усе мэйлы адпраўляюцца імгенна.
У нас толькі крон задачы ёсць для перыядычнага запуска.

З sidekiq усе джобы будуць перадавацца ў sidekiq як queue adapter-у:

class Application < Rails::Application
  # ...
  config.active_job.queue_adapter = :sidekiq
end

@abitrolly
Copy link
Member

@abitrolly у сайдкіка свой дашбоард і логі.

А бесплатного плана https://sidekiq.org/ хватает, чтобы дебажить эту асинхронщину? Я как-то на древнем проде пытался это дебажить, в итоге всё равно вручную на листике пришлось восстанавливать состояние переходов.

@jekhor
Copy link
Member

jekhor commented May 15, 2022

@yahor не імгненна:
"Resque adapter for Active Job

Resque (pronounced like “rescue”) is a Redis-backed library for creating background jobs, placing those jobs on multiple queues, and processing them later."

@yahor
Copy link
Contributor Author

yahor commented May 15, 2022

@jekhor Дык не выстаўлены ў нас адапцер цяперака. Значыцца будзе інлайн у тым жа патоку.

Rails by default comes with an asynchronous queuing implementation that runs jobs with an in-process thread pool. Jobs will run asynchronously, but any jobs in the queue will be dropped upon restart.
https://guides.rubyonrails.org/active_job_basics.html

@jekhor
Copy link
Member

jekhor commented May 15, 2022

Ну, дык асінхронна ж. Так, калі мыла яшчэ не адправілася, а хтосьці перазапусціць рэльсы — то згубіцца, гэта праўда.

@jekhor
Copy link
Member

jekhor commented May 15, 2022

Карацей, зрабіць добра было б, так, але і зараз не блакуецца. Вось тэлеграмам блакуецца, але ён дастаткова хутка для нас адпрацоўвае.

@abitrolly
Copy link
Member

По-ходу защита от потерь задач в бэсплатной версии не работает https://sidekiq.org/

@yahor
Copy link
Contributor Author

yahor commented Jan 7, 2024

Screenshot 2024-01-07 at 19 23 20

Таксама можна выкарыстаць https://github.com/bensheldon/good_job або новы праект ад Basecamp https://dev.37signals.com/introducing-solid-queue/

https://ruby.mobidev.biz/posts/sidekiq-vs-delayed-job-vs-good-job/#goodjob

@abitrolly
Copy link
Member

Реклама Solid Queue выглядит вкусно, конечно. Непонятно как с проблемами работать? Куда уведомления валятся о неудачных задачах? Как их исправлять? Понятно, что API есть, а человеческий интерфейс? Хотя бы мыльный..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants