Release 2.5 of OroPlatform brings numerous improvements to MessageQueue jobs and our REST API.
MQ message processing is now isolated, meaning it is not affected by state of services and data cache that was initialized during other messages processing.
As a consequence, AmqpMessageProducer::send method is now aware of isolation level while publishing messages—a message may be published only if the database transaction related to this message was committed.
Priority of export processing has been decreased to prevent it from blocking other background tasks.
New “time before stale” parameter sets the limit on permitted inactivity period for a job. After this time a job is considered stale and is marked with new Job::STATUS_STALE status, so it can be aborted.
A warning is displayed to the user if no consumers are running, allowing them to identify the problem and alarm the system administrator.
The API now supports alternative syntax for filtering operators: filter[field][eq]=value yields the same results as filter[field]=value. The following operators are supported: eq, neq, lt, lte, gt, gte.
Records can now be filtered by range. Use the following syntax: GET /entity?filter[date]=YYYY-MM-DD..YYYY-MM-DD.
Datagrids now support monetary values represented by integers to allow proper handling of non-fractional currencies, e.g. Japanese Yen. Many thanks to René Nitzsche (@digedag) and Samuel Denis-D’Ortun (@sadortun) for contributing this improvement!
Other changes and improvements
Oro configuration cache warmups were moved to cache clearers\warmers to improve performance of initial functional test run
Internal cached tree was removed from AbstractOwnerTreeProvider to improve internal caching of consumers