PHP code example of sevming / delayed-task
1. Go to this page and download the library: Download sevming/delayed-task library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sevming / delayed-task example snippets php
use Sevming\DelayedTask\TaskServer;
', 6379, '123456');
// 开启调试模式
$server->debug = true;
$server->runAll();
} catch (Exception $e) {
exit($e->getMessage());
}
php
use Sevming\DelayedTask\TaskClient;
', 6379, '123456');
// 1. 每隔3秒调用Order:return,当处理成功后调用Order:success
$client->add([
'topic' => 'order:return',
'id' => 1,
'call' => ['Order', 'return'],
'intervalTime' => 3,
'callback' => ['Order', 'success'],
]);
// 2. 10秒后调用Order:receipt,仅调用1次
$client->add([
'topic' => 'order:receipt',
'id' => 2,
'call' => ['Order', 'receipt'],
'intervalTime' => 10,
'persistent' => false,
]);
// 3. 设置优先级,每隔 0|30|60秒 调用Order:timeout,调用三次后结束调用
$client->add([
'topic' => 'order:timeout',
'id' => 3,
'call' => ['Order', 'timeout'],
'priority' => 2,
'intervalTime' => '0,30,60',
'persistent' => false,
]);
// 4. 每隔 0|10|20秒 调用Order:refund,调用三次后,间隔时间为20秒调用一次
$client->add([
'topic' => 'order:refund',
'id' => 4,
'call' => ['Order', 'refund'],
'intervalTime' => '0,10,20',
]);
// 5. 每隔 0|15|30秒 请求一次url,请求三次后,不再请求
$client->add([
'topic' => 'order:notify',
'id' => 5,
'url' => '192.168.1.77:8080',
'params' => [
'content' => 'hello'
],
'intervalTime' => '0,15,30',
'persistent' => false,
]);
// 6. 删除任务,根据添加任务时的topic和id
$client->del('order:return', 1);
} catch (Exception $e) {
exit($e->getMessage());
}
php
class Order
{
public function return(array $task)
{
echo __FUNCTION__ . ",id={$task['id']},createTime={$task['createTime']},count={$task['rule']['count']},runTime=" . date('Y-m-d H:i:s') . PHP_EOL;
// 返回success,则任务结束
return 'success';
}
public function receipt(array $task)
{
echo __FUNCTION__ . ",id={$task['id']},createTime={$task['createTime']},count={$task['rule']['count']},runTime=" . date('Y-m-d H:i:s') . PHP_EOL;
}
public function timeout(array $task)
{
echo __FUNCTION__ . ",id={$task['id']},createTime={$task['createTime']},count={$task['rule']['count']},runTime=" . date('Y-m-d H:i:s') . PHP_EOL;
}
public function refund(array $task)
{
echo __FUNCTION__ . ",id={$task['id']},createTime={$task['createTime']},count={$task['rule']['count']},runTime=" . date('Y-m-d H:i:s') . PHP_EOL;
}
public function success(array $task)
{
var_dump($task);
echo "任务处理成功\n";
}
}