告诉php在特定时刻创建一个新对象,Cronjobs?

时间:2015-05-15 09:05:14

标签: php cron

我正在尝试创建此应用程序,但我目前的知识阻止我构建它,希望你能帮助我!

方案

我正在创造某种乳制品应用。从用户按下开始按钮的那一刻起,创建对象,用户稍后可以通过填写他的报告来编辑该对象。

现在,用户每天只能写一份报告,因此必须在早上0:00将新对象添加到数据库中,然后再次填写。

问题

如何告诉php在特定时刻创建新对象?

我想这样做:

  1. 仅显示到目前为止尚未创建对象的页面。按下“开始行程”按钮时,将创建一个新对象。
  2. 在时间为0:00时添加对象的页面(*使用cronjobs?)
  3. 显示所有创建日期并允许用户编辑它们的页面。
  4. *到目前为止,我发现的唯一解决方案是使用cronjobs,但我不熟悉这些。 cronjobs是正确的方式,我怎么能使用它们(我在MAMP上测试我的代码)?或者是否可以单独使用php,以及如何实现?

    非常感谢所有帮助! lvRoy

2 个答案:

答案 0 :(得分:0)

我认为你根本不需要cronjobs(如果我理解正确的话)。您只需检查是否创建了新报告,无论他们当天是否已创建报告。如果答案为否,您可以使用正确的数据在数据库中创建新项目,否则您将返回错误消息“已创建当天的报告”。

答案 1 :(得分:0)

  

是否可以(有限制)仅在每日首次使用时生成此对象?当用户访问他的面板时,它会检查当天是否已经有一个对象,如果没有,那么它会创建这个对象吗?

如果这对您没问题,那么您可以这样做:

首先,您可以为用户(在数据库/会话中)添加另一个名为" next_check"这将表示您需要检查对象是否已创建的下一次(日期或时间戳)。

在运行时,您将检查此属性是否低于当前时间,例如:

if ($user['next_check'] <= time()) {
   //create task
}

如果您需要创建此任务(条件为真),那么您将创建对象并更新&#34; next_check&#34;值到时间()。否则,你什么都不做。

请注意,此解决方案会丢失对象的历史记录,因为如果用户10天内未访问此应用程序,则10天内不会创建任何对象,但最终登录应用程序时只会创建1个对象。

当然,即使用户没有通过在&#34; next_check&#34;&#34; next_check&#34;之后迭代条件来访问您的应用,您也可以每天生成一个对象。低于时间()。

while ($user['next_check'] <= time()) {
   //create object
   $user['next_check'] += 3600 * 24;
}