Skip to content

Releases: zepgram/module-multi-threading

0.3.0

08 Feb 09:58

Choose a tag to compare

Fixed

  • thread:processor exit status masking: command now returns failure when at least one wrapped iteration fails.
  • thread:processor argument passthrough: command now supports command arguments (including whitespace command strings like "help cache:clean").
  • thread:processor memory pressure on output-heavy commands: output is now flushed incrementally while child process is running instead of only at process end.
  • invalid max children configuration: ForkedProcessorRunner, ParallelStoreProcessor, and ParallelWebsiteProcessor now reject maxChildrenProcess <= 0.
  • dimension processors with empty inputs: store/website processors now return early without running the forked runner when no targets exist.

Added

  • thread:processor --fail-on-loop option to break iteration loop after first failure.
  • thread:processor --ignore-exit-code option to force success exit code while emitting a warning summary.
  • thread:processor command_args array argument.

Changed

  • ForkedProcessor fallback now targets explicitly failed pages instead of all non-completed pages.
  • ForkedProcessor supports configurable child DB reconnect behavior through constructor argument reconnectDatabaseInChild (now opt-in; default false to preserve DB session compatibility for temporary-table-based workloads).
  • ForkedProcessor compatibility mode (default) now terminates child workers with signals to avoid PHP child shutdown closing parent DB session state used by temporary-table-based workloads.

Release 0.1.9

19 Jul 08:20

Choose a tag to compare

[v0.1.9] correctly handle kill signal for command line processor

v0.1.8

09 Jul 17:16

Choose a tag to compare

Add delay option, to allow delay between iterations

v0.1.7

09 Jul 16:34

Choose a tag to compare

Cast float value on setTimeout option

[v0.1.6] Cronjob context and parent resource availability

13 Dec 15:44

Choose a tag to compare

Overview

This release addresses an issue related to resource connections being incorrectly terminated by child processes, which previously led to unavailable resources for the parent process. The update ensures a more reliable operation of the module, especially when used in scheduled tasks. This would unlikely occurred on a command line execution, unless your parent pid was using resource after completed children processes.

Key Changes

  1. Improved Resource Connection Management in Child Processes:
  • The update resolves a crucial issue where MySQL connections were inadvertently closed by child processes, rendering them unavailable for the parent process.
  • This fix is particularly beneficial in scenarios where the module is utilized within cron jobs, ensuring subsequent tasks in the cron schedule are not impacted by unavailable database connections.
  1. Enhanced Process Management and Stability:
    The module now employs register_shutdown_function() in child processes to forcefully terminate them using posix_kill(getmypid(), SIGKILL) upon completion of their tasks. This ensures a clean and immediate release of resources, preventing potential resource leaks or locking issues.

  2. Posix dependency
    The module now requires ext-posix as dependency in order to run.

[v0.1.5] fix when fetched result are empty

08 Dec 14:50

Choose a tag to compare

In case we had no results from criteria/collection: the script was simply running indefinitly.

Now if there is no result, the script will stop execution on first iteration.

[v0.1.4] fix public access on sig method

16 Oct 16:29

Choose a tag to compare

[v0.1.4] handle sigint and sigterm, change method to public

Release 0.1.3

11 Apr 11:00

Choose a tag to compare

Release 0.1.2

07 Mar 10:04

Choose a tag to compare

[0.1.2] release

  • add store and website dimensions to allow implementation of parallel processes foreach stores, this is not possible with the getList method which is not compliant with service contract (there is no search criteria parameter, so we cannot use the ForkedSearchResultProcessor).
  • update documentation accordingly.

Release 0.1.1

28 Feb 23:24

Choose a tag to compare

[0.1.1] release

  • add fallback system for children failure: missing pages are now handled and processed by parent process.
  • add log "Fallback on missing pages" containing pages missing from collection