Open yahor opened 2 years ago
И как его дебажить?
Email і так праз deliver_later адпраўляюцца (ну можа не паўсюль)
нд, 15 мая 2022, 13:32 карыстальнік Yahor @.***> напісаў:
- Вынесці месаджы ТГ у асобныя сэрвісы і джобы
- Вынесці адпраўку эмэйлаў у фонавыя джобы
— 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: @.***>
@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 у сайдкіка свой дашбоард і логі.
А бесплатного плана https://sidekiq.org/ хватает, чтобы дебажить эту асинхронщину? Я как-то на древнем проде пытался это дебажить, в итоге всё равно вручную на листике пришлось восстанавливать состояние переходов.
@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."
@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
Ну, дык асінхронна ж. Так, калі мыла яшчэ не адправілася, а хтосьці перазапусціць рэльсы — то згубіцца, гэта праўда.
Карацей, зрабіць добра было б, так, але і зараз не блакуецца. Вось тэлеграмам блакуецца, але ён дастаткова хутка для нас адпрацоўвае.
По-ходу защита от потерь задач в бэсплатной версии не работает https://sidekiq.org/
Таксама можна выкарыстаць 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
Реклама Solid Queue выглядит вкусно, конечно. Непонятно как с проблемами работать? Куда уведомления валятся о неудачных задачах? Как их исправлять? Понятно, что API есть, а человеческий интерфейс? Хотя бы мыльный..
https://sidekiq.org/