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(); }