Releases: lucasnetau/php-ec
Input/Action logging with levels
Add JsonRPC method of log to the scheduler to allow input and action processes to send log messages along with a logLevel through to the scheduler to be added to the PSR3 log. This allows a log level to be recorded instead of being logged as an error coming via the STDERR pipe.
Improved Shutdown
Improve the shutdown process, extending to Rules and Actions
Change CorrelationEngine initialisation in the Scheduler to allow access to set the engine to live timing in subclasses
Logging and Error Handling
Support PSR-3 Loggers in the Scheduler code
Setup an additional timer to save application state at least once every 60 minutes
Testing improvements
Improvements to high memory usage processing, including timeout to ensure the engine doesn't sit with no work to do.
ReactPHP 1.2.0 support
PHP8.0 support
Additional improvements to logging
Bug Fix: STDOUT error handling
BugFix: Handle the error generated if an input source process emits non JSONRPC data on stdout
General Improvements
Bug Fix: Don't use json_encode magic JSON_NUMERIC_CHECK when saving state, some event ids could be converted from strings to scientific numbers preventing the restoration of state on next start
Improvement: PHP8 support (ob_implicit_flush signature change)
Improvement: Graceful shutdown of input processes before terminating scheduler
Improvement: Logging throughout the scheduler
Improvement: Normalise Event datetime to UTC timezone
Bug Fix
Rework MatchAny logic
Committed basic tests to show basic event processing functionality
Bug Fix
Fixed an issue where an even might complete after firing but was not cleaned up completely leading it to be written to the save file. On restore this would throw an error when the complete event handler was used.
Add in a EVENT_MATCH_ANY into the Correlation Engine to allow a Rule to handle any event
Fix php_cmd function to use the PHP constant PHP_BINARY instead of the environmental variable by the same name.
BugFix Release
Fix issue with functions and implicit flushing function call in PHP < 8.0
PHP 7.4 support and additional features
Upgrade minimal supported PHP version to 7.4, implement typed class attributes and typed function attributes and return values.
Add base Validate, Enrich, Filter class for processing new events
Add the ability for events emitted by rules (instead of actions) to be fed back into the engine instead of persisting via the newEventAction handler.
Save handler flush timer is now configurable every X seconds via setSaveStateInterval
async save hander will now ensure only a single save event is in progress at any one time. This fixes issues when the server is overloaded and the save write and flush to disk takes longer than the save state interval.