Swoole入门 第二个程序 timer定时任务 | PHP 技术论坛


本站和网页 https://learnku.com/articles/66807 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Swoole入门 第二个程序 timer定时任务 | PHP 技术论坛
PHP
话题列表
社区 Wiki
优质外文
招聘求职
PHP 实战教程
社区文档
登录
注册
PHP
首页
Laravel
Go
PHP
Vue.js
Python
Java
MySQL
Rust
LK
Elasticsearch
F2E 前端
Server
程序员
Database
DevTools
Computer Science
手机开发
AdonisJS
社区
Wiki
文档
社区文档首页
《PHP 内核与原生扩展开发》
《Composer 中文文档》
《Elasticsearch-PHP 中文文档》
《PHP PSR 标准规范》
《PHP 设计模式全集》
登录
注册
微信登录
Swoole入门 第二个程序 timer定时任务
zhaocrazy 的个人博客
27
创建于 8个月前
更新于 8个月前
一、swoole 定时器
Linux Crontab 最小时间粒度为分钟。PHP Swoole 最小时间粒度为毫秒。swoole_timer_tick() 间隔的时钟控制器swoole_timer_after() 指定的时间后执行swoole_timer_clear() 删除定时器
例子-可复制直接执行
//每隔3000ms 触发一次
$timer_id = swoole_timer_tick(3000, function(){
echo "tick 3000ms -你好timer ".date('Y-m-d H-i-s')."\n";
);
//9000ms后删除定时器
swoole_timer_after(9000, function () use($timer_id){
echo "after 9000ms - 再见 timer ".date(''Y-m-d H-i-s)."\n";
swoole_timer_clear($timer_id);
});
二、 架构图
三、开源项目 github.com/osgochina/swoole-cronta...
四、业务场景
系统日常监控每天凌晨跑业务脚本,脚本中包括了请求其他业务方或第三方的接口,如果接口超时无响应或没有数据返回,需要进行重试。定时任务处理半小时未支付订单
场景二代码(不能单独执行 仅示例):
$api_url = 'xxx'; //接口地址
$exec_num = 0; //执行次数
swoole_timer_tick(5*60*1000, function($timer_id) use ($api_url, &$exec_num) {
$exec_num ++ ;
$result = $this->requestUrl($api_url);
echo date('Y-m-d H:i:s'). " 执行任务中...(".$exec_num.")\n";
if ($result) {
//业务代码...
swoole_timer_clear($timer_id); // 停止定时器
echo date('Y-m-d H:i:s'). " 第(".$exec_num.")次请求接口任务执行成功\n";
} else {
if ($exec_num >= 5) {
swoole_timer_clear($timer_id); // 停止定时器
echo date('Y-m-d H:i:s'). " 请求接口失败,已失败5次,停止执行\n";
} else {
echo date('Y-m-d H:i:s'). " 请求接口失败,5分钟后再次尝试\n";
});
文章整理学习于github.com/xinliangnote/Swoole
个人博客停止维护,部分博客转载到这
peter2021-04-17 00:26:17
本作品采用《CC 协议》,转载必须注明作者和本文链接
滴水穿石,石破天惊----晓疯子
举报
zhaocrazy
版主
673 声望
Gopher @ 专注后端
脚踏实地,每日练习。在极限处,突破、前进!
0 人点赞
推荐文章:
更多推荐...
博客
自己录制的Symfony5视频教程,免费分享给大家学习。
24
22
1年前
博客
Hyperf 2.0 发布!想象的开端!
41
25
2年前
博客
hyperf-im 开源啦! 基于 hyperf 微服务框架 +layim 开发的一套聊天系统!
12
11
2年前
博客
PHP yield 协程 生成器用法探究 (一)
10
2年前
博客
swoole 学习笔记-做一顿饭来理解协程
31
2年前
博客
[完结] The PHP Practitioner [Laracasts 免费视频中文语音]
15
2年前
讨论数量: 0
排序:
时间
投票
(= ̄ω ̄=)··· 暂无内容!
讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
<a href="javascript:;" class="mr-2 ui popover text-mute" data-html="黏贴或拖拽图片至输入框内皆可上传图片">
<a href="javascript:;" class="mr-2 ui popover text-mute hide-on-mobile" data-html="支持除了 H1~H6 以外的GitHub 兼容 Markdown">
支持 MD
帮助
关注本文
评论
zhaocrazy
Gopher @ 专注后端
文章
68
粉丝
22
喜欢
49
收藏
126
排名:566
访问:1.3 万
关注
私信
所有博文
阅读模式
文章归档
1 篇
2022 年 10 月
4 篇
2022 年 6 月
2 篇
2022 年 5 月
37 篇
2022 年 4 月
1 篇
2022 年 3 月
14 篇
2022 年 2 月
1 篇
2022 年 1 月
4 篇
2021 年 12 月
1 篇
2019 年 4 月
3 篇
2019 年 3 月
最新文章
最受欢迎
1个月前
整理的面试题答案
5个月前
数据结构基础 入门——图
5个月前
数据结构基础 入门——堆
6个月前
数据结构基础 入门——二叉树
6个月前
数据结构基础 入门——散列表
16
phper gopher 学习网站推荐
三、GO 编程模式:FUNCTIONAL OPTIONS
Goland 面试题收集 (主要网络协议方面)
为laravel 装上swoole 飞向蓝天
学习笔记:带你十天轻松搞定 Go 微服务系列(一)环境搭建
博客标签
php
laravel
html
mysql
magento2
lamp
算法
数据结构
正则
微服务
基础
推荐
linux
go-zero
Go编程
社区赞助商
成为赞助商
社区赞助商
成为赞助商
关于 LearnKu
LearnKu 是终身编程者的修道场
做最专业、严肃的技术论坛
LearnKu 诞生的故事
资源推荐
《社区使用指南》
《文档撰写指南》
《LearnKu 社区规范》
《提问的智慧》
服务提供商
其他信息
成为版主
所有测验
联系站长(反馈建议)
粤ICP备18099781号-6
粤公网安备 44030502004330号
违法和不良信息举报
由 Summer 设计和编码 ❤
请登录
提交
忘记密码?
or
注册
第三方账号登录
微信登录
GitHub 登录
内容举报
匿名举报,为防止滥用,仅管理员可见举报者。
我要举报该,理由是:
垃圾广告:恶意灌水、广告、推广等内容
无意义内容:测试、灌水、文不对题、消极内容、文章品质太差等
违规内容:色情、暴利、血腥、敏感信息等
不友善内容:人身攻击、挑衅辱骂、恶意行为
科学上网:翻墙、VPN、Shadowsocks,政策风险,会被关站!
不懂提问:提问太随意,需要再做一遍《提问的智慧》测验
随意提问:提问没有发布在社区问答分类下
排版混乱:没有合理使用 Markdown 编写文章,未使用代码高亮
内容结构混乱:逻辑不清晰,内容混乱,难以阅读
标题随意:标题党、标题不释义
尊重版权:分享付费课程、破解软件(付费),侵犯作者劳动成果
其他理由:请补充说明
举报
取消