【问题标题】:cronjob starting php web applicationcronjob 启动 php web 应用程序
【发布时间】:2012-03-24 17:54:33
【问题描述】:

我有一个 php Web 应用程序正在执行导入。我打开页面单击导入并关闭它。 它会在将结果保存到数据库之前进行各种检查。

现在我想每天自动执行此操作。怎么样?

cronjob 只启动 php 脚本,但我可以用它启动应用程序吗?

更具体地说: 我有一个表示层、控制器和一个 DAO。 对于 cronjob,表示层无关紧要。

我真正需要启动的是控制器中的一个函数。此导入功能从亚马逊获取 s3 存储桶列表,与数据库中的现有条目进行交叉检查,并使用 DAO 将新条目保存到数据库中。我还使用了 2 个其他对象。 因此,提取代码并将其放入脚本中确实是矫枉过正。也因为我有 4 种不同的导入。

使用 wget 我不明白如何将右键单击传递给 cronjob。我在那一页上有 4 个按钮来启动 4 个不同的导入。我正在使用 javascript 函数 onclick="submitImport('importTranscripts')" 和表单:

<form name="form1" id="importForm" action="" method="POST" enctype="multipart/form-data">

链接的外观如何?

【问题讨论】:

  • 如果一切都在 php 中完成,为什么还需要启动应用程序?
  • 如果您想以正确的方式执行此操作,您应该从应用程序中提取执行导入的代码并使其可从命令行 php 脚本调用,这样您就可以避免运行时 HTTP 的开销这在 cron 中,虽然在你的情况下可能有点矫枉过正,但这是一个最佳实践。

标签: php cron web


【解决方案1】:

在您的 cron 作业中使用 wget。例如

wget -O- http://example.com/yourscript.php

【讨论】:

  • 当我有一个表单并想在 POST 中传递参数时,链接的外观如何?
  • 要访问该导入页面,我必须通过登录。 wget可以吗?
猜你喜欢
  • 1970-01-01
  • 2010-09-26
  • 2013-05-02
  • 1970-01-01
  • 2012-08-10
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
相关资源
最近更新 更多