谁一开始就是大神?

后台任务的实现[2.0]

项目有需求,需要点击下载文件、或者导出、导入文件的时候,即加入后台任务,在后台那里添加任务运行查询,等查询完数据再提示可以下载,请问应该怎么实现呢,各位大牛

1任务加到数据库,用一个定时脚本去跑,跑完更新状态
2用消息队列去处理
个人想法:
查出数据后,渲染成对应类型的文件,将文件存放的url入表中,可以使用长连接,查看表中是否有它想要数据的url,如果有就提示下载。后台使用rabitMq(消息队列就可以实现异步渲染文件吧)。。。。,前端也可以通过JS点击下载后,隔几秒钟掉一下接口看看需要下载的数据在不在。
建议项目集成workerman或swoole,使用参考文档
我现在有些需求和你差不多,短信,环信,友盟这些都是写入到任务中,发送成功后,同步任务
下载原理也差不多,队列执行下载完后同步下载地址和状态
项目下集成了workerman创建一个守护进程,多个子进程,去执行任务
PC端的socket通信推送消息也支持,
最近也是在做后台管理的时候有个导出 execl 文件,在查看列表页的时候就把当前查看列表的SQL加密作为参数,点击导出就是SQL执行直接导出了。没有什么后台任务进行。如果你的比较繁琐的话,个人建议就是丢到任务中,处理完毕通知用户,至于通知方式可以是 长连接,邮箱,再就是用户刷新或者访问其他站内地址以站内信的方式告知。
我想,在后台队列中生成一个任务,同时生成数据库下载文件,状态为输出处理中,后台队列完毕后,更改状态为可下载
按照你说的需求只能用队列+cron

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 后台任务的实现[2.0]

评论 抢沙发

登录

找回密码

注册