Action Scheduler

Beschrijving

Action Scheduler is een schaalbare, traceerbare taak wachtrij voor het op de achtergrond verwerken van grote sets acties in WordPress. Het is speciaal ontworpen om verspreid te worden in WordPress plugins.

Action Scheduler werkt door het triggeren van een actie hook om op een bepaald moment in de toekomst uit te voeren. Elke hook kan worden gepland met unieke gegevens, zodat callbacks bewerkingen op die gegevens kunnen uitvoeren. De hook kan ook worden gepland om op één of meer momenten te worden uitgevoerd.

Zie het als een uitbreiding op do_action() die de mogelijkheid toevoegt om een hook te vertragen en te herhalen.

Battle-Tested Background Processing

Elke maand verwerkt Action Scheduler miljoenen betalingen voor Subscriptions , webhooks voor WooCommerce en e-mails en andere gebeurtenissen voor een reeks andere plugins.

Het is gezien op live sites waar wachtrijen van meer dan 50.000 opdrachten werden verwerkt en resource intensieve operaties, zoals het verwerken van betalingen en het aanmaken van orders, met een aanhoudende snelheid van meer dan 10.000 per uur werden uitgevoerd zonder de normale werking van de site negatief te beïnvloeden.

Dit is allemaal op infrastructuur en WordPress sites buiten de controle van de plugin auteur.

Als je plugin achtergrondverwerking nodig heeft, vooral van grote reeksen taken, kan Action Scheduler helpen.

Leer meer

Voor meer informatie over hoe Action Scheduler werkt, en hoe het te gebruiken in je plugin, bekijk de docs op ActionScheduler.org.

Daar zul je vinden:

Credits

Action Scheduler wordt ontwikkeld en onderhouden door Automattic , met een aanzienlijke vroege ontwikkeling door Flightless.

Samenwerking is cool. We zouden graag met je samenwerken om Action Scheduler te verbeteren. Pull Requests zijn welkom.

Beoordelingen

18 maart 2024 1 reactie
What this plugin/library adds to WordPress is incredibly powerful. It’s asynchronous execution of actions gives developers incredible possibilities. The fact that plugin developers have the option to integrate this plugin/library into their own plugins is fantastic. Keep up the good work!
5 maart 2024 6 reacties
Only tested it, I didnt like it, and now it wont leave. Manually removing tables – crashes my site. Sucking the life out of my server. I have to ask support for how to get rid of it. Horrible Horrible
17 december 2023 7 reacties
This plugin is a classical malware:1) it acts hidden: it integrates in Wordpress core, don’t identificate itself for site owner, don’t allow any management of it’s activity or control for site owner. 2) It secretly and non-stop (every minute) allocates all server resources displacing all useful processes like processing user’s requests and all others too. It slow down site in times. From my experience “server response time” decreased from 7-8s to 1,2s just as I started to limit this malware, but I still can’t stop or remove it completely (there is no woocommerce on my site, but I believe that it were the result would be more impressive). 3) It acts as extension to Wordpress’s wp_cron service. All that it does can be done under pure wp_cron but not hidden and without slowing down site. So, it’s crear to understand that if some other plugin use Scheduled Actions it does it only to hide something from site owner eyes or/and slow down site (probably to upsale pro version that acts without Scheduled Actions. 4) There is no way how to completely stop neither uninstall it neither remove it’s actions neither it’s wp_cron task. 5) It’s impossible just to short circle some functions in it to stop it’s working – it’s code made the way that it break site down if someone try to stop it. I have found the way to limit it’s activity but can’t stop it completely. 6) All question to developers regarding this behavior return with answer like “it runs as we wish, keep enjoying slow down your site” or buy our other plugins or employ us to find why your site is slow down. Explanations about clear difference with Scheduled Actions working as they with and limited they just ignore. I strictly advice plugin developer run a mile of this malware otherwise site owners have to remove already your plugins accusing already you in the fatal slow of their sites and probably with criminal charge (at least in EU).
22 maart 2023 1 reactie
Developers refuse to support their own plugin. I have no use for something that does not work, and something the developers will not support. Cannot and will not recommend to anyone… sadly will not make much of a difference because it’s in use in every site that utilizes WooCommerce, but, whatever…
8 november 2022 2 reacties
Look, I’m fine with having to do some coding. After all, I want to write my own php code to be called every five minutes or so. But you have to tell me WHERE to put the calls. I’ve installed your service via plugin, and your usage page (actionscheduler [dot] org [slash] usage) tells me exactly nothing about where I need to make these API calls. Is it function.php in my home WP directory? Can I make these calls from my own self-made directory? Tell me!
Lees alle 9 beoordelingen

Bijdragers & ontwikkelaars

“Action Scheduler” is vertaald in 3 talen. Dank voor de vertalers voor hun bijdragen.

Vertaal “Action Scheduler” naar jouw taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.

Changelog

3.9.0 – 2024-11-14

  • Minimum required version of PHP is now 7.1.
  • Performance improvements for the as_pending_actions_due() function.
  • Existing filter hook action_scheduler_claim_actions_order_by enhanced to provide callbacks with additional information.
  • Improved compatibility with PHP 8.4, specifically by making implicitly nullable parameters explicitly nullable.
  • A large number of coding standards-enhancements, to help reduce friction when submitting plugins to marketplaces and plugin directories. Special props @crstauf for this effort.
  • Minor documentation tweaks and improvements.

3.8.2 – 2024-09-12

  • Add missing parameter to the pre_as_enqueue_async_action hook.
  • Bump minimum PHP version to 7.0.
  • Bump minimum WordPress version to 6.4.
  • Make the batch size adjustable during processing.

3.8.1 – 2024-06-20

  • Fix typos.
  • Improve the messaging in our unidentified action exceptions.

3.8.0 – 2024-05-22

  • Documentation – Fixed typos in perf.md.
  • Update – We now require WordPress 6.3 or higher.
  • Update – We now require PHP 7.0 or higher.

3.7.4 – 2024-04-05

  • Give a clear description of how the $unique parameter works.
  • Preserve the tab field if set.
  • Tweak – WP 6.5 compatibility.

3.7.3 – 2024-03-20

  • Do not iterate over all of GET when building form in list table.
  • Fix a few issues reported by PCP (Plugin Check Plugin).
  • Try to save actions as unique even when the store doesn’t support it.
  • Tweak – WP 6.4 compatibility.
  • Update “Tested up to” tag to WordPress 6.5.
  • update version in package-lock.json.

3.7.2 – 2024-02-14

  • No longer user variables in _n() translation function.

3.7.1 – 2023-12-13

  • update semver to 5.7.2 because of a security vulnerability in 5.7.1.

3.7.0 – 2023-11-20

  • Important: starting with this release, Action Scheduler follows an L-2 version policy (WordPress, and consequently PHP).
  • Add extended indexes for hook_status_scheduled_date_gmt and status_scheduled_date_gmt.
  • Catch and log exceptions thrown when actions can’t be created, e.g. under a corrupt database schema.
  • Tweak – WP 6.4 compatibility.
  • Update unit tests for upcoming dependency version policy.
  • make sure hook action_scheduler_failed_execution can access original exception object.
  • mention dependency version policy in usage.md.

3.6.4 – 2023-10-11

  • Performance improvements when bulk cancelling actions.
  • Dev-related fixes.

3.6.3 – 2023-09-13

  • Use _doing_it_wrong in initialization check.

3.6.2 – 2023-08-09

  • Add guidance about passing arguments.
  • Atomic option locking.
  • Improve bulk delete handling.
  • Include database error in the exception message.
  • Tweak – WP 6.3 compatibility.

3.6.1 – 2023-06-14

  • Document new optional $priority arg for various API functions.
  • Document the new --exclude-groups WP CLI option.
  • Document the new action_scheduler_init hook.
  • Ensure actions within each claim are executed in the expected order.
  • Fix incorrect text domain.
  • Remove SHOW TABLES usage when checking if tables exist.

3.6.0 – 2023-05-10

  • Add $unique parameter to function signatures.
  • Add a cast-to-int for extra safety before forming new DateTime object.
  • Add a hook allowing exceptions for consistently failing recurring actions.
  • Add action priorities.
  • Add init hook.
  • Always raise the time limit.
  • Bump minimatch from 3.0.4 to 3.0.8.
  • Bump yaml from 2.2.1 to 2.2.2.
  • Defensive coding relating to gaps in declared schedule types.
  • Do not process an action if it cannot be set to in-progress.
  • Filter view labels (status names) should be translatable | #919.
  • Fix WPCLI progress messages.
  • Improve data-store initialization flow.
  • Improve error handling across all supported PHP versions.
  • Improve logic for flushing the runtime cache.
  • Support exclusion of multiple groups.
  • Update lint-staged and Node/NPM requirements.
  • add CLI clean command.
  • add CLI exclude-group filter.
  • exclude past-due from list table all filter count.
  • throwing an exception if as_schedule_recurring_action interval param is not of type integer.

3.5.4 – 2023-01-17

  • Add pre filters during action registration.
  • Async scheduling.
  • Calculate timeouts based on total actions.
  • Correctly order the parameters for ActionScheduler_ActionFactory’s calls to single_unique.
  • Fetch action in memory first before releasing claim to avoid deadlock.
  • PHP 8.2: declare property to fix creation of dynamic property warning.
  • PHP 8.2: fix “Using ${var} in strings is deprecated, use {$var} instead”.
  • Prevent undefined variable warning for $num_pastdue_actions.

3.5.3 – 2022-11-09

  • Query actions with partial match.

3.5.2 – 2022-09-16

  • Fix – erroneous 3.5.1 release.

3.5.1 – 2022-09-13

  • Onderhoud aan A/S-documenten.
  • fix: PHP 8.2 deprecated notice.

3.5.0 – 2022-08-25

  • Add – The active view link within the “Tools > Scheduled Actions” screen is now clickable.
  • Add – A warning when there are past-due actions.
  • Enhancement – Added the ability to schedule unique actions via an atomic operation.
  • Enhancement – Improvements to cache invalidation when processing batches (when running on WordPress 6.0+).
  • Enhancement – If a recurring action is found to be consistently failing, it will stop being rescheduled.
  • Enhancement – Adds a new “Past Due” view to the scheduled actions list table.

3.4.2 – 2022-06-08

  • Fix – Change the include for better linting.
  • Fix – update: Added Action scheduler completed action hook.

3.4.1 – 2022-05-24

  • Fix – Change the include for better linting.
  • Fix – Fix the documented return type.

3.4.0 – 2021-10-29

  • Enhancement – Number of items per page can now be set for the Scheduled Actions view (props @ovidiul). #771
  • Fix – Do not lower the max_execution_time if it is already set to 0 (unlimited) (props @barryhughes). #755
  • Fix – Avoid triggering autoloaders during the version resolution process (props @olegabr). #731 & #776
  • Dev – ActionScheduler_wcSystemStatus PHPCS fixes (props @ovidiul). #761
  • Dev – ActionScheduler_DBLogger.php PHPCS fixes (props @ovidiul). #768
  • Dev – Fixed phpcs for ActionScheduler_Schedule_Deprecated (props @ovidiul). #762
  • Dev – Improve actions table indices (props @glagonikas). #774 & #777
  • Dev – PHPCS fixes for ActionScheduler_DBStore.php (props @ovidiul). #769 & #778
  • Dev – PHPCS Fixes for ActionScheduler_Abstract_ListTable (props @ovidiul). #763 & #779
  • Dev – Adds new filter action_scheduler_claim_actions_order_by to allow tuning of the claim query (props @glagonikas). #773
  • Dev – PHPCS fixes for ActionScheduler_WpPostStore class (props @ovidiul). #780

3.3.0 – 2021-09-15

  • Enhancement – Adds as_has_scheduled_action() to provide a performant way to test for existing actions. #645
  • Fix – Improves compatibility with environments where NO_ZERO_DATE is enabled. #519
  • Fix – Adds safety checks to guard against errors when our database tables cannot be created. #645
  • Dev – Now supports queries that use multiple statuses. #649
  • Dev – Minimumvereisten voor WordPress en PHP verhoogd (naar respectievelijk 5.2 en 5.6). #723

3.2.1 – 2021-06-21

  • Fix – Add extra safety/account for different versions of AS and different loading patterns. #714
  • Fix – Handle hidden columns (Tools Scheduled Actions) | #600.

3.2.0 – 2021-06-03

  • Fix – Add “no ordering” option to as_next_scheduled_action().
  • Fix – Add secondary scheduled date checks when claiming actions (DBStore) | #634.
  • Fix – Add secondary scheduled date checks when claiming actions (wpPostStore) | #634.
  • Fix – Adds a new index to the action table, reducing the potential for deadlocks (props: @glagonikas).
  • Fix – Fix unit tests infrastructure and adapt tests to PHP 8.
  • Fix – Identify in-use data store.
  • Fix – Improve test_migration_is_scheduled.
  • Fix – PHP notice on list table.
  • Fix – Speed up clean up and batch selects.
  • Fix – Update pending dependencies.
  • Fix – [PHP 8.0] Only pass action arg values through to do_action_ref_array().
  • Fix – [PHP 8] Set the PHP version to 7.1 in composer.json for PHP 8 compatibility.
  • Fix – add is_initialized() to docs.
  • Fix – fix file permissions.
  • Fix – fixes #664 by replacing __ with esc_html__.