“定时器Timer类”可以脱离workerman单独使用吗?

jy03204340

我想做一个不依托于workerman的情况下做一个定时器,我的需求是这样:
我创建一个房间,在创建房间的1小时候后,删除这个房间,在依托workerman的情况下我是会做,因为workerman的服务只需要跑起来,调用timer方法就可以了,但我如果是不依赖workerman的业务是如何定时执行的呢,是要用到进程吗?还是其他,求解答

7990 4 0
4个回答

walkor

简单的方法是用crontab,
创建房间的时候在数据库里面填一个记录,房间号和创建时间,
写一个php脚本,crontab设置成每分钟跑一次,
php脚本读取数据库,检查下是否有房间到一个小时了,
有的话就删除

  • 暂无评论
tony998

其实方法很多,自己写定时器的话,要开守护进程,while(true)这样运行,如果项目有用到redis可以用redis的消息订阅,设置一个字段1小时过期,过期时修改数据库字段,也可以把功能改成触发型的,当调用某些接口(例如房间初始化接口)时,检查房间创建时间距今是否超过1小时,是的话修改一个标志位,这最简单,不过你都涉及到聊天了,用workerman多方便

  • 暂无评论
pader

这种精确度要求不高的,肯定是用 crontab 做啊,想什么呢。

  • 暂无评论
dazhaozhao

https://wenda.workerman.net/question/4391  看看这个,我从workerman 抄的,你再抄个守护进程加上去,就可以实现了。
当然稳定性不如workerman,毕竟workerman经过了实战。

  • 暂无评论
年代过于久远,无法发表回答
🔝