public function make_contract_pdf()
 {
     $taskModel = M('system_task');
     // 标记超时的任务为停止运行
     $taskModel->where(['is_run' => 1, 'updated' => ['elt', time() - 300]])->save(['is_run' => 0, 'remark' => '运行超时,自动终止!']);
     // 检测进程数是否已经满额
     $max_task = 1;
     if ($taskModel->where(['is_run' => 1])->count() >= $max_task) {
         return;
     }
     // 设置不超时
     set_time_limit(0);
     // 登记一下任务
     $task_id = $taskModel->add(['created' => time(), 'is_run' => 1]);
     // 开始工作
     $total = 0;
     $contractModel = new \Loan\Model\OrderContractModel();
     while (true) {
         // 处理任务
         $success_num = $contractModel->task();
         // 若没有任务可处理,则休眠5秒钟再重试
         if ($success_num < 1) {
             sleep(5);
         }
         $total += $success_num;
         // 任务被人为终止则退出循环
         if ($taskModel->where(['id' => $task_id, 'is_run' => 1])->save(['updated' => time(), 'total_success' => $total, 'remark' => '最后更新时间:' . date('Y-m-d H:i:s')]) == 0) {
             break;
         }
     }
     // 告个别
     $taskModel->where(['id' => $task_id])->save(['is_run' => 0, 'remark' => '任务手动退出']);
 }