如何实现一个定时任务来对数据库中的数据进行操作?

发布于 2022-09-05 00:13:56 字数 267 浏览 14 评论 0

目前用laravel框架开发的一个项目,项目中需要一些数据,需要的这些数据是对数据库中几十张表进行关联查询、运算、处理后得到的,由于数据量比较大,公司要求写一个定时任务,在每天晚上0点时开始执行,直到把所有数据都执行处理一遍后结束这个任务。我现在在laravel控制器中写了一个方法,用来处理数据库中的数据,现在只要定时循环执行这个方法就可以实现功能。

但是现在我不知道如何去定时执行?是用php cli模式执行?还是用artisan console执行?求指点思路?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

沧笙踏歌 2022-09-12 00:13:56

Laravel 的 Scheduling 我觉得非常符合你的需求,中文文档在这里。
http://d.laravel-china.org/do...

不知在何时 2022-09-12 00:13:56

crontab 使用Linux的wget或者curl命令通过Http请求访问你的控制器。

甜尕妞 2022-09-12 00:13:56

1.大数据量最好就别拉出来应用层玩啦,写个mysql的存储过程或者函数。(调用可以通过mysql事件调用),这样处理会非常节省资源。

2.还是写到存储过程,可以配合 linux中的 crond定时任务进行定时处理。

ˇ宁静的妩媚 2022-09-12 00:13:56

laravel有调度任务功能的.建议多看文档~

涙—继续流 2022-09-12 00:13:56

按你的情况最简单的就是laravel 的任务调度

嗼ふ静 2022-09-12 00:13:56

contrab

夜声 2022-09-12 00:13:56

这玩意看你公司需求了,有运维的话,你自己写个方法来操作数据,让运维写个脚本来定时请求这个方法就行了。没有运维并且你老板也不让你动服务器的话,可以选择写一个PHP脚本来操作数据,用sleep和循环来搞定,把这个文件放到连接中,用header函数来访问请求这个链接

分開簡單 2022-09-12 00:13:56

我来推荐几个定时任务的库。用composer加载
Dispatcher 基于Laravel的定时任务管理
swoole-crontab 基于swoole的定时器程序,支持秒级处理
jobby 一个 PHP 的定时任务管理器
cronlingo Express crontabs as human friendly phrases
没事的话可以去awesomes-php中去看
看不懂英文我这里有一个备份也可以查看点击此处跳转

唐婉 2022-09-12 00:13:56

可以用Laravel 的任务调度,守护进程可以用Supervisor。至于你说的php cli模式执行?还是用artisan console执行。 其实articsan命令 就是cli模式

如梦亦如幻 2022-09-12 00:13:56

写artisan console 然后命令行通过php artisan name来执行

堇年纸鸢 2022-09-12 00:13:56

写一个php脚本 每晚用crontab 执行 php crontab.php就好了

我们公司是有单独的一台服务器作为定时脚本服务器 都是通过php-cli执行的 不建议用curl curl会504超时 不可取

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文