public function __construct($attributes = [])
 {
     parent::__construct($attributes);
     $this->model = null;
     $this->output_file = Yii::getAlias('@runtime') . '/deferred-task-' . uniqid();
     touch($this->output_file);
     chmod($this->output_file, 0777);
 }
 public function actionEdit($id = '')
 {
     /** @var AdminPost|\DevGroup\Multilingual\behaviors\MultilingualActiveRecord $model */
     $model = AdminPost::loadModel($id, true, true, 86400, new NotFoundHttpException());
     if ($model->isNewRecord === true) {
         $model->created_at = date('Y-m-d H:i:s');
     }
     if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post())) {
         foreach (Yii::$app->request->post('PostTranslation', []) as $language => $data) {
             foreach ($data as $attribute => $translation) {
                 $model->translate($language)->{$attribute} = $translation;
             }
         }
         if ($model->save()) {
             if (empty($id)) {
                 $newsletterTask = new OnetimeTask();
                 $newsletterTask->consoleRoute('newsletter/send-post', [$model->id])->registerTask();
             }
             Yii::$app->session->setFlash('success', Yii::t('app', 'Object saved.'));
             return $this->redirect(['/admin-posts/edit', 'id' => $model->id]);
         }
     }
     return $this->render('edit', ['model' => $model]);
 }
 public function testRegister()
 {
     $files = ['task91'];
     foreach ($files as $f) {
         if (file_exists("/tmp/{$f}")) {
             unlink("/tmp/{$f}");
         }
     }
     $task = new OnetimeTask();
     $task->cliCommand('touch', ['/tmp/task91']);
     $this->assertTrue($task->registerTask());
     $time = time() + 120;
     echo "Running {$time} = " . date("Y-m-d H:i:s", $time) . "\n";
     $this->assertInstanceOf(DeferredQueue::className(), $task->model());
     Yii::$app->runAction('deferred/index', [0, $time, 1]);
     echo "Checking\n";
     $this->assertTrue(file_exists('/tmp/task91'));
 }
 public function __construct($attributes = [])
 {
     parent::__construct($attributes);
     $this->model->delete_after_run = false;
     $this->model->output_file = Yii::getAlias('@runtime') . '/deferred-task-' . uniqid();
 }