开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
dc
/
Crontab.php
dc
/
Crontab.php
Crontab.php 2.97 KB
一键复制 编辑 原始数据 按行查看 历史
d.c 提交于 2020年12月22日 19:00 +08:00 .
<?php
use Swoole\Coroutine;
use Swoole\Coroutine\Channel;
use Swoole\Timer;
use Swoole\Coroutine\System;
Swoole\Coroutine::set([
"max_coroutine" => 10000,
]);
class Crontab
{
/**
* @var int
*/
protected $tickTime = 1;
/**
* @var int
*/
protected $maxTask = 10;
/**
* @var Channel
*/
protected $channel;
public function __construct()
{
$this->channel = new Channel($this->maxTask);
}
/**
* Timer
*/
public function tick()
{
// 执行规则 , 任务command ,任务中的参数,任务状态[是否正在执行]
// 操作: 编辑任务,删除任务,暂停任务(执行期间强制终止进程;下一次禁止执行)
//日志系统:存储,展示(检索,搜索),删除日志,日志导入es 等等分析工具
Timer::tick($this->tickTime * 1000, function ($timer_id) {
//获取所有的tasks
$tasks = [
[
"timer_id" => $timer_id,
"task_name" => "task_name",
"rule" => "* * * * * *",
"command_string" => "/usr/bin/php php_script.php",
"log_switch" => true,
"log_dir" => "test_dir",
"log_name" => "task_name_" . date("Y-m-d H:i:s") . ".log",
"storage_oss" => true,
"storage_api" => "",
],
[
"timer_id" => $timer_id,
"task_name" => "task_name",
"rule" => "*/5 * * * * *",
"command_string" => "md5sum swoole.php",
"log_switch" => true,
"log_dir" => "test_dir",
"log_name" => "task_name_" . date("Y-m-d H:i:s") . ".log",
"storage_oss" => true,
"storage_api" => "",
]
];
// Push task to channel
foreach ($tasks as $task) {
$this->channel->push($task);
}
});
}
/**
* Exec Task
*/
public function dispatch()
{
while (true) {
$task = $this->channel->pop();
var_dump($task);
$cmd = $task["command_string"];
//执行失败返回 false,执行成功返回数组,包含了进程退出的状态码、信号、输出内容。
echo $cmd.PHP_EOL;
$result = false;
//$result = System::exec($cmd);
if(!$result){
echo date("Y-m-d H:i:s")." ,the task :".$cmd." exec false;".PHP_EOL;
}else{
var_dump($result);
}
}
}
}
Co\run(function () {
$task = new Crontab();
$task->tick();
$task->dispatch();
});
/**
* http 回掉函数中创建协程容器
* Class Http
*/
class Http
{
public function __construct()
{
}
public function onPen()
{
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

swoole_cron
暂无标签
Apache-2.0
使用 Apache-2.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/linuxvip/dc.git
git@gitee.com:linuxvip/dc.git
linuxvip
dc
dc
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /