現在、laravel フレームワークを使用してプロジェクトを開発しています。このプロジェクトにはいくつかのデータが必要です。必要なデータは、データベース内の数十のテーブルに対して関連するクエリ、計算、処理を実行することで取得されます。データ量が多いため、会社では、スケジュールされたタスクは毎晩 に実行を開始し、すべてのデータが処理された後に終了します。これで、データベース内のデータを処理するためのメソッドをlaravelコントローラに記述できたので、このメソッドを通常のループで実行するだけで機能を実現できます。
しかし、定期的に実行する方法がわかりません。 phpのcliモードで実行されているのでしょうか?それともartisanコンソールを使って実行しますか?アドバイスをお探しですか?
crontab 使用Linux的wget或者curl命令通过Http请求访问你的控制器。
1.大数据量最好就别拉出来应用层玩啦,写个mysql的存储过程或者函数。(调用可以通过mysql事件调用),这样处理会非常节省资源。
2.还是写到存储过程,可以配合 linux中的 crond定时任务进行定时处理。
Laravel 的 Scheduling 我觉得非常符合你的需求,中文文档在这里。
http://d.laravel-china.org/do...
laravel有调度任务功能的.建议多看文档~
按你的情况最简单的就是laravel 的任务调度
contrab
这玩意看你公司需求了,有运维的话,你自己写个方法来操作数据,让运维写个脚本来定时请求这个方法就行了。没有运维并且你老板也不让你动服务器的话,可以选择写一个PHP脚本来操作数据,用sleep和循环来搞定,把这个文件放到连接中,用header函数来访问请求这个链接
我来推荐几个定时任务的库。用composer加载
Dispatcher 基于Laravel的定时任务管理
swoole-crontab 基于swoole的定时器程序,支持秒级处理
jobby 一个 PHP 的定时任务管理器
cronlingo Express crontabs as human friendly phrases
没事的话可以去awesomes-php中去看
看不懂英文我这里有一个备份也可以查看点击此处跳转