瀏覽代碼

add:comments

joe 4 年之前
父節點
當前提交
daf51f8a6f
共有 1 個文件被更改,包括 33 次插入2 次删除
  1. 33 2
      crmeb/services/async/task/Task.php

+ 33 - 2
crmeb/services/async/task/Task.php

@@ -7,16 +7,47 @@ use think\facade\Config;
 use think\facade\Log;
 
 
+/**
+ * 这个 Task 表示异步任务的基类, 借助于 beanstalkd 等服务来异步执行或延后执行
+ * 
+ * HOWTO
+ * 
+ * 首先根据特定的任务,实现一个子类, 比如 SomeTask
+ * 
+ * class SomeTask extends Task {
+ *      public static function push($param1, $param2, $param3) {
+ *          self::put([
+ *              'param1' => $param1,
+ *              'param2' => $param2,
+ *              'param3' => $param3
+ *          ]);
+ *      }
+ * 
+ *      protected static function getCmd() {
+ *          return 'some_task';
+ *      }
+ * 
+ *      protected static function exec(array $param) {
+ *          //Do something
+ *      }
+ * }
+ * 
+ * // 消费任务的代码实现
+ * // read from beanstalk
+ * SomeTask::exec($param)
+ * 
+ * 增加任务到 beanstalkd 代码
+ */
 abstract class Task {
     /**
-     * 得到任务 cmd 标识, 任务类别
+     * 虚函数。返回任务 cmd 标识, 任务类别
      * 
      * @return string
      */
     abstract protected static function getCmd();
 
     /**
-     * 执行从 beanstalkd 中取出的任务数据 $task.
+     * 虚函数。执行从 beanstalkd 中取出的任务数据 $task.
      * 
      * @return boolean
      */