Skip to content

Releases: zepgram/module-multi-threading

0.3.0

Choose a tag to compare

@zepgram zepgram released this 08 Feb 09:58

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

Choose a tag to compare

@zepgram zepgram released this 19 Jul 08:20

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

v0.1.8

Choose a tag to compare

@zepgram zepgram released this 09 Jul 17:16

Add delay option, to allow delay between iterations

v0.1.7

Choose a tag to compare

@zepgram zepgram released this 09 Jul 16:34

Cast float value on setTimeout option

[v0.1.6] Cronjob context and parent resource availability

Choose a tag to compare

@zepgram zepgram released this 13 Dec 15:44

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

Choose a tag to compare

@zepgram zepgram released this 08 Dec 14:50

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

Choose a tag to compare

@zepgram zepgram released this 16 Oct 16:29
[v0.1.4] handle sigint and sigterm, change method to public

Release 0.1.3

Choose a tag to compare

@zepgram zepgram released this 11 Apr 11:00

Release 0.1.2

Choose a tag to compare

@zepgram zepgram released this 07 Mar 10:04

[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

Choose a tag to compare

@zepgram zepgram released this 28 Feb 23:24

[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