- update the templates updated at, even if the API request fails ( to prevent jobs from stacking up in case of API failures upstream ) - sequence the job in batches of 25 requests per minutes schedule ( in case API response time is high, also not to send too many requests in a single batch ) - move the sync job re-rerun to 3 hours ( since we are updating the updated at even in case of failures )(prev 15 minutes ) Fixes: https://linear.app/chatwoot/issue/CW-1590
11 lines
402 B
Ruby
11 lines
402 B
Ruby
class Channels::Whatsapp::TemplatesSyncSchedulerJob < ApplicationJob
|
|
queue_as :low
|
|
|
|
def perform
|
|
Channel::Whatsapp.where('message_templates_last_updated <= ? OR message_templates_last_updated IS NULL',
|
|
3.hours.ago).limit(Limits::BULK_EXTERNAL_HTTP_CALLS_LIMIT).all.each do |channel|
|
|
Channels::Whatsapp::TemplatesSyncJob.perform_later(channel)
|
|
end
|
|
end
|
|
end
|