Releases: AppsDevTeam/background-queue
Releases · AppsDevTeam/background-queue
v5.5.1: Order background jobs by ID for consistent processing
v5.5.0: Allow dynamic AMQP arguments based on queue name
Introduces an optional `queueArguments` parameter to the `Manager` constructor. This enables applying specific AMQP arguments, such as `x-single-active-consumer`, to queues whose names contain a defined string. This provides more granular and flexible control over queue behavior without requiring separate queue parameter definitions for each unique configuration.
v5.4.4: Handle deadlocks in job coalescing
The `markCoalescedJobsRedundant` operation can encounter transient database deadlocks (1213) during concurrent writes. This could leave jobs stuck in a PROCESSING state. This change adds a retry mechanism with a back-off delay for the coalesce UPDATE to overcome these transient deadlocks. Additionally, a new index `(serial_group, coalesce_threshold)` is added to optimize the WHERE clause, reducing lock contention and preventing deadlocks by allowing targeted index scans.
v5.4.3: Lower background queue job fetch limit
Reduces the maximum number of background jobs fetched and processed per iteration from 10,000 to 1,000. While the previous increase to 10,000 aimed to reduce database round-trips, processing such a large batch concurrently could still lead to excessive memory consumption for specific job types, resulting in out-of-memory errors. This adjustment provides a better balance between database efficiency and peak memory usage during job execution.
v5.4.1: Improve memory handling for background queue processing
Addresses potential out-of-memory errors when processing a large number of background jobs. * Limits the number of background jobs fetched per iteration to 10,000. * Increases the PHP memory limit for the console `process` command to 1GB.
v5.4: Merge pull request #61 from AppsDevTeam/priority-and-serialgroup
Priority and serialgroup
v5.3.2
v5.3.1
v5.3: Merge pull request #59 from AppsDevTeam/processWaitingJobs
Process waiting jobs
v5.2.1: Removes auto schema updates on each request
Being used only for localhost, this could cause problems with transactions (ALTER TABLE performs an autocommit, which breaks Doctrine’s transaction depth counter).