brzuchal/scheduler

使用重复选项调度消息

v1.1.0 2022-10-04 17:41 UTC

This package is auto-updated.

Last update: 2024-09-21 15:09:31 UTC


README

Tests

致俄罗斯🇷🇺人民的一封信

如果您目前居住在俄罗斯,请阅读此信息

用途

消息调度器实现了对所有类型消息对象在应实际处理之前的空闲时间的持久存储。调度可以在确切触发时间发生,或者使用重复规则,该规则确定执行机制触发消息的时间集合。

SWUbanner

安装

composer require brzuchal/scheduler

使用

use Brzuchal\Scheduler\Executor\SimpleScheduleExecutor;
use Brzuchal\Scheduler\MessageScheduler;
use Brzuchal\Scheduler\Store\PdoScheduleStore;

$store = new PdoScheduleStore(new PDO('sqlite:scheduler.sqlite'));
$scheduler = new MessageScheduler($store);
$executor = new SimpleScheduleExecutor($store, var_dump(...));

// Scheduling message
$scheduler->schedule(new DateTimeImmutable('tomorrow 09:00:00'), new \FooMessage());

// Execute all pending messages
$dateTime = new DateTimeImmutable('now');
foreach ($store->findPendingSchedules($dateTime) as $identifier) {
    $executor->execute($identifier);
}

注意! PDO 存储需要根据使用的数据库平台手动设置。例如,请参阅schema.sql

许可证

MIT 许可证

版权所有 (c) 2022 Michał Marcin Brzuchalski

在此,任何获得本软件及其相关文档副本(以下简称“软件”)的个人,免费许可使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供副本的个人进行此类操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是因合同行为、侵权行为或其他行为引起的,无论是与软件、软件的使用或其他方式有关还是由此产生的。