首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole_timer_clear 不能清除另一个work的定时器吗?
请问怎么解决这个问题哦 。。。
发布于6年前 · 4 次浏览 · 来自
提问
p
poxiaohy
请问怎么解决这个问题哦 。。。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2019-11-30
离
离陌
如果清除这个id,会报swoole_timer_clear(): no timer in错误
赞
0
回复
2020-01-06
睡梦之龙
请问有办法吗?
赞
0
回复
2020-01-12
布
布さん
遇到了同样的困难……正在考虑怎么做…… 其实也就是一个worker能产生定时器而另一个要能取消掉这个定时器,道理上确实不大好讲通,但是需求总归是需求…… 看起来有个比较笨的办法是单独做个表记录当前的状态,然后callback里执行前判断一次状态有没有改变…… 要是定时器callback可以传入自身id就比较轻松了,在swoole_table里写个状态用时取一下判断就行,但是现在没有传入…… 但是现在这么做实在是感觉太不方便了,尤其是业务比较复杂的情况下乱的一塌糊涂,不知道有没有更好的办法
赞
0
回复
2020-01-12
m
miracle
{{{ /** * 定时器的Redis结构 * hash:'HASH_TIMER'.id * item:timestamp * stamp:stamp, * status:1|0, */ function setFrameTimer($id, $time, $callback) { $stamp = (string)microtime(true); $timerId = swoole_timer_after($time, fun
赞
0
回复