手动调用cron任务Symfony 1.4

时间:2013-06-17 17:04:44

标签: cron symfony-1.4

我在myProject / lib / task下放置了一个cron任务。这个cron每天工作超过一年。

但是现在我必须在我的项目中创建一个按钮,以便在客户需要时执行与cron相同的过程。代码太复杂了,我无法在正常操作中重写所有内容。

有没有办法从正常的操作中调用cron任务?

1 个答案:

答案 0 :(得分:3)

以下是如何通过操作调用任务,您只需要添加一个链接就可以了。我在示例中使用了标准的Symfony“Clear Cache”任务,但您可以将其更改为您的:

public function executeRunTaskTest(sfWebRequest $request)
{
  // need to be working in the project root
  chdir(sfConfig::get('sf_root_dir'));

  // init the task we want to run
  $task = new sfCacheClearTask($this->dispatcher, new sfFormatter());

  // run the task
  $task->run(
    array(), // array of arguments
    array(
      'app' => 'frontend',
      'env' => 'prod',
      'type' => 'all',
    ) // array of options
  );

  // back to where we came from
  $this->redirect($request->getReferer());
}

您也可以使用PHP exec()shell_exec()函数,但这个Symfony解决方案可能更容易。 :)