minsk-hackerspace / hackerspace.by

Website of Minsk Hackerspace (Ruby on Rails)
https://hackerspace.by/
11 stars 20 forks source link

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

Open yahor opened 2 years ago

yahor commented 2 years ago

https://sidekiq.org/

abitrolly commented 2 years ago

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

jekhor commented 2 years ago

Email і так праз deliver_later адпраўляюцца (ну можа не паўсюль)

нд, 15 мая 2022, 13:32 карыстальнік Yahor @.***> напісаў:

https://sidekiq.org/

  • Вынесці месаджы ТГ у асобныя сэрвісы і джобы
  • Вынесці адпраўку эмэйлаў у фонавыя джобы

— Reply to this email directly, view it on GitHub https://github.com/minsk-hackerspace/hackerspace.by/issues/562, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA4VW5IDDWVZTQOLW3WCUDVKDHB7ANCNFSM5V64X3VA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

yahor commented 2 years ago

@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 commented 2 years ago

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

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

jekhor commented 2 years ago

@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 commented 2 years ago

@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 commented 2 years ago

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

jekhor commented 2 years ago

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

abitrolly commented 2 years ago

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

yahor commented 6 months ago
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 commented 6 months ago

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