Active
Project:
Subscription Manager
Version:
1.0.x-dev
Component:
Code
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
15 Oct 2026 at 00:49 UTC
Updated:
15 Oct 2026 at 00:49 UTC
Jump to comment: Most recent
Three parts of hook_cron do unbounded synchronous remote work before core gets to run the queues:
CycleEngine::settleOpenCharges() loads every stale charge and re-submits each to its connector inline.CycleEngine::end() per expired charge-based subscription, which calls the remote cancellation service, one connector call per row.DunningManager::sweepSuspensions() loads all past-due subscriptions whose grace has ended and, per row, saves the user, dispatches an event and sends mail.All three use a single loadMultiple() with no range. Under automated cron (web-request time limit) or a slow provider, cron is aborted before processQueues(), so billing, retries and login reconciliation stall precisely during the provider outage the sweep exists for.
None.
Possibly new queue worker plugin ids.
None.
Comments