计划任务
2018-09-15 本文已影响0人
imjcw
原文:命令行工具
添加计划任务
开启入口
默认使用 crontab
来管理:
crontab -e
# 配置为system_queue_adapter_mysql
# 每5分钟去消费sdb_system_queue_mysql的队列,未处理owner_id = -1
*/5 * * * * 路径+/script/queue/queue.sh /usr/bin/php >/dev/null
# 配置为system_queue_adapter_mysql
# 每分钟取sdb_base_crontab判断是否需要执行,需要写入sdb_system_queue_mysql
* * * * * /usr/bin/php 路径+/script/crontab/crontab.php >/dev/null
定义执行内容
路径:app_path + '/lib/tasks/'
<?php
class b2c_tasks_test extends base_task_abstract implements base_interface_task
{
public function exec($params=null){}
}
添加xml配置
路径:app_path + 'crontab.xml'
<cronentries>
<cron id="b2c_tasks_test">
<description>名称</description>
<schedule>* * * * *</schedule>
<enabled>true</enabled>
</cron>
</cronentries>
添加config配置
路径:config/queue.php
$bindings = array(
'crontab:b2c_tasks_test' => array('slow') // slow|normal|quick
);
添加数据库记录
这里只需要执行 update
就会自动添加进 sdb_base_crontab
表。
php app/base/cmd update
触发生成任务
发布异步任务
system_queue::instance()->publish('b2c_tasks_sendemail', 'b2c_tasks_sendemail', $params)