Task.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\cron\controller;
  11. use app\Controller;
  12. use think\facade\Log;
  13. use think\facade\Cache;
  14. /**
  15. * 计划任务
  16. * @author Administrator
  17. */
  18. class Task extends Controller
  19. {
  20. /**
  21. * 执行计划任务(单独计划任务)
  22. */
  23. public function execute()
  24. {
  25. ignore_user_abort(true);
  26. set_time_limit(0);
  27. //设置计划任务标识
  28. Log::write("检测事件执行" . date("Y-m-d H:i:s", time()));
  29. $last_time = Cache::get("cron_last_load_time");
  30. if (empty($last_time)) {
  31. $last_time = 0;
  32. }
  33. $time = time();
  34. if (($time - $last_time) < 20) {
  35. Log::write("防止多次执行");
  36. exit();//跳出
  37. }
  38. Cache::set("cron_last_load_time", time());
  39. $cron_model = new \app\model\system\Cron();
  40. $cron_model->execute();
  41. sleep(60);
  42. $url = url('cron/task/execute');
  43. http($url, 1);
  44. exit();
  45. }
  46. /**
  47. * php自动执行事件
  48. */
  49. public function cronExecute()
  50. {
  51. $url = url('cron/task/execute');
  52. http($url, 1);
  53. }
  54. /**
  55. *检测自动任务是否人在进行
  56. */
  57. public function checkCron(){
  58. $cron_model = new \app\model\system\Cron();
  59. $result = $cron_model->checkCron();
  60. return $result;
  61. }
  62. }