Jobs.php 921 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace backend\models;
  3. use Yii;
  4. /**
  5. * 配置队列管理
  6. * Class Jobs
  7. * @package app\models
  8. * @author libingke
  9. */
  10. class Jobs extends \yii\db\ActiveRecord
  11. {
  12. const STATUS_RUN = 1;
  13. const STATUS_STOP = 0;
  14. /**
  15. * @inheritdoc
  16. */
  17. public static function tableName()
  18. {
  19. return 'amqp_jobs';
  20. }
  21. /**
  22. * [获取场景]
  23. * @author: libingke
  24. * @param $sign
  25. * @return false|string
  26. */
  27. public static function fetchDataBySign($sign, $useCache = true)
  28. {
  29. if (!is_string($sign) || $sign === '')
  30. return false;
  31. $cache = Yii::$app->redis;
  32. $key = 'table:amqp_jobs:sign:' . $sign;
  33. $data = $cache->get($key);
  34. if ($data === false || $useCache == false) {
  35. $info = self::find()
  36. ->where(['sign' => $sign, 'status' => static::STATUS_RUN])
  37. ->asArray()->one();
  38. $data = serialize($info);
  39. $cache->set($key, $data, 60);
  40. }
  41. return unserialize($data);
  42. }
  43. }