Releases: lucasnetau/php-ec
Improved Callbacks
Add in support for onComplete(), onTimeout(), onProgress() called by fire(), makes for cleaner rules.
Also split acceptEvent into acceptInitialEvent() and acceptSubsequentEvent() to remove boilerplate for setting up and crosschecking context.
Rule Child Classes
Provide Rule child classes to cover some of the standard code required for each rule type
Shutdown Order
Improve shutdown handling when actions exit on their own before input processes have exited
BugFixes
Management Server
Implement a basic HTTP management server to view into the state of a running Scheduler
Update TimeBucket dependancies
Remove TimeBucket dependancy as it is not a hard requirement for PHP-EC
Bug Fix
Fix instances that may have the old PHP7.4+ serialisation format from v0.2.10-v0.2.12
Custom Object Serialisation support
Implement support for PHP7.4+ custom object serialisation https://wiki.php.net/rfc/custom_object_serialization. This introduces a new format for the save file, the older serialize/unserialize methods are left to support restoring previous version state files. This fixes deprecation messages from PHP8.1 which has deprecated the Serializable Interface.
More pedantic validation when restoring state and early failure and exit if we cannot load from saved state.
Improved Error Handling
Improve our error handling for source and action processes. Setup sensible ini params and error handlers when requested to ensure we don't leak warnings/errors etc down the interprocess pipes.
Error Handling
-
Add unhandled exception handling to the ActionHelper class
-
Support millisecond granularity of events
Infinite Loop
Fix an Infinite Recursion Loop bug that could be triggered by a timed out Rule that emits an event and does not set a flag prior to that to ensure it doesn't continue to emit the same event. The Scheduler will continue to process the event and give it to the Correlation Engine, which then checks timeouts creating the loop.
Small fix to shutdown process when all input processes exit unexpectedly