【发布时间】: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 中,虽然在你的情况下可能有点矫枉过正,但这是一个最佳实践。