TaskFunc.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace common\libs\taskQueue;
  3. use common\helpers\Cache;
  4. use common\helpers\Date;
  5. use common\helpers\DingTalk;
  6. use common\helpers\LoggerTool;
  7. use common\models\forms\HistoryBonusForm;
  8. use common\models\TaskQueue;
  9. use SebastianBergmann\CodeCoverage\Report\PHP;
  10. class TaskFunc
  11. {
  12. /**
  13. * 初始化自动备份余额任务
  14. */
  15. public static function initAutoBakBalance(){
  16. // 查看数据库中是否存在未开始的备份奖金表的任务,如果没有就添加一个新任务
  17. if(!TaskQueue::find()->where('TYPE=:TYPE AND CONTENT=:CONTENT AND STARTED_AT>:STARTED_AT', [':TYPE'=>Queue::TYPE_FUNC, ':CONTENT'=>TaskFunc::class.'::autoBakBonusTable', ':STARTED_AT'=>Date::nowTime()])->asArray()->exists()){
  18. // 获取站点配置中的备份时间
  19. $config = Cache::getSystemConfig();
  20. $backupWeekDate = (int)$config['backupWeekDate']['VALUE'];
  21. $backupTime = (int)$config['backupTime']['VALUE'];
  22. Queue::instance()->addTask(Queue::TYPE_FUNC, TaskFunc::class.'::autoBakBonusTable', [], Queue::LOOP_TYPE_WEEK, $backupWeekDate.','.$backupTime.':00', 0);
  23. }
  24. }
  25. /**
  26. * 自动备份奖金表
  27. * @throws \yii\base\InvalidConfigException
  28. *
  29. */
  30. public static function autoBakBonusTable(){
  31. $form = new HistoryBonusForm();
  32. $form->taskAutoBackup();
  33. }
  34. /**
  35. * 测试队列任务
  36. */
  37. public static function testTaskQueue(){
  38. print_r('执行到测试任务'.PHP_EOL);
  39. }
  40. // /**
  41. // * 初始化自动发送钉钉提醒任务
  42. // */
  43. // public static function initAutoSendDingTalk() {
  44. // // 查看数据库中是否存在未开始的任务,如果没有就添加一个新任务
  45. // if(!TaskQueue::find()->where('TYPE=:TYPE AND CONTENT=:CONTENT AND STARTED_AT>:STARTED_AT', [':TYPE'=>Queue::TYPE_FUNC, ':CONTENT'=>TaskFunc::class.'::autoSendDingTalkTable', ':STARTED_AT'=>Date::nowTime()])->asArray()->exists()){
  46. // // 获取站点配置中的备份时间
  47. // $config = Cache::getSystemConfig();
  48. // $sendDingTalkTime = $config['sendDingTalkTime']['VALUE'];
  49. // Queue::instance()->addTask(Queue::TYPE_FUNC, TaskFunc::class.'::autoSendDingTalkTable', [], Queue::LOOP_TYPE_DAY, $sendDingTalkTime, 0);
  50. // }
  51. // }
  52. //
  53. // /**
  54. // * 自动送钉钉提醒
  55. // */
  56. // public static function autoSendDingTalkTable() {
  57. // $ip = 'https://ng-frontend-api.elken.com';
  58. //// $ip = 'http://16.163.228.151:8026';
  59. //
  60. // $curl = curl_init();
  61. // curl_setopt($curl, CURLOPT_URL, $ip . '/v1/site/send-notice');
  62. // curl_setopt($curl, CURLOPT_TIMEOUT, 5000);
  63. // curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  64. // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  65. // curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  66. // $res = curl_exec($curl);
  67. // if ($res) {
  68. // curl_close($curl);
  69. // LoggerTool::info($res);
  70. // } else {
  71. // $error = curl_errno($curl);
  72. // curl_close($curl);
  73. // LoggerTool::error($error);
  74. // }
  75. // }
  76. }