【问题标题】:Pass information between CronJobs在 CronJobs 之间传递信息
【发布时间】:2020-05-11 16:45:02
【问题描述】:

我有一个 Cron,它由 EasyCron 每 10 分钟执行一次,并抛出一个 cURL 请求(使用 PHP)来更新一些用户的数据。

问题是我从中获取信息的网站会阻止任何在一段时间后提出该请求的人。

所以我必须根据我的 CronJob 的结果将一些数据(一个整数就足够了)传递给下一个 Cron。如果我收到错误消息,我会在一段时间内停止请求该信息,以防止我的网站被阻止一天或更长时间。

由于我无法使用会话,因此解决方法可能是一个只有数字的空白文件,但我正在寻找更简洁的解决方案...一种通过 GET 请求或某种方式传递信息的方法SESSION 取决于结果。

感谢您的回复。

【问题讨论】:

  • 带数字的文件对我来说似乎是一个干净的解决方案;)

标签: php session curl cron request


【解决方案1】:

您有多种选择;

在文件中传递变量

在这种情况下,您只需将值放入文件并从其他 cron 作业中读取。如果您还需要保留类型,那么您可以将变量类型存储为字符串,并将其转换为其他 cron 作业中的类型。

将变量传递给数据库

在这里您将变量存储在数据库中,并以类似的方式从其他 cron 作业中读取它

使用 UDP 端口或套接字文件传递变量

这些是流行的方法。但是,如果您为套接字文件实现它,您将无法在 Windows 上使用它,只能在 linux 环境中使用它

使变量成为环境变量

例如:export VARIABLE,而在另一个脚本中,您将获取此值,然后将其清除。

【讨论】:

  • 数据库呢?我应该只为此目的创建一个表吗?
  • 你可以。这取决于您想采用哪种解决方案。如果它只是一个变量,我可能会将其作为系统环境变量传递,因为它非常容易实现。但这真的取决于你。
  • 谢谢。我想我会选择套接字或putenv()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2018-01-25
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多