【问题标题】:Run a request every 3 hours每 3 小时运行一次请求
【发布时间】:2019-01-08 11:23:23
【问题描述】:

我有一个 API 需要用来向它发送信息,但这个 API 要求我每三个小时获取一个访问令牌。我的问题不是关于 API 本身,而是关于我必须这样做的方式。我知道我需要使用 cron 作业来做到这一点。但这是唯一的方法吗,还是我可以让 php schedule 自己来做呢?如果没有,那么我可以让 cron 作业“发出请求”而不是“运行脚本”吗? 我的想法是,我将制作一个 php 文件,该文件将触发我的系统获取新令牌(所有令牌请求数据和函数都将保存在我的系统中,而不是 cronjob 文件中),而不是外部的文件设置我的项目并从外部对其进行更改。这是一个好主意,还是我应该让 cronjob 文件为我获取令牌? 我希望我的观点正确。

【问题讨论】:

    标签: php cron jobs


    【解决方案1】:

    首先,cronjob 本身并没有像您所说的“提出请求”那样做任何事情。这正是“运行脚本”。现在为您回答,有一些方法可以做到这一点,但这种工作的最佳方法是 cron。使其在内核下工作并且完全可靠和稳定。 第二,“保存在我的系统中而不是 cronjob 文件中”是什么意思? 如果您的意思是您将访问令牌存储在您的代码中,现在您必须将其存储在一个文件中,因为 cron 运行一个脚本并且该脚本将令牌保存在某处并且它不安全,所以只需执行以下操作: 创建仅写入 0 或 1 文件的脚本。该脚本每 3 小时由 cron 运行一次并将 0 更改为 1。您的代码始终检查此文件,如果值为 1,则令牌已过期,您在制作之前生成新令牌新的 api 调用,最后你再次将该文件更改为 0。这只是一个简单的方法。 但请注意,这不是最佳实践,如果您可以在另一边实施 REFRESH TOKEN METHOD。

    【讨论】:

    • 我对此完全陌生,非常感谢。我现在很清楚,所以我现在知道该怎么做。非常感谢楼主!!
    【解决方案2】:

    如果您要运行的脚本是基于 Web 的,您可以考虑使用第 3 方服务(例如 crono)以编程方式设置您的作业。

    【讨论】:

      【解决方案3】:

      您可以在每次 cron 作业运行时记录在文件上创建的令牌,您可以验证它存在的时间,并且您的代码可以决定在它即将到期(即 3 小时)时请求新令牌。但是,如果您在到期前 15 分钟这样做,那将是理想的,因为您获得令牌的时间和令牌最终由 3rd 方系统生成的时间会有所不同,尽管差异可能不是那么大,但很多事情可以发生在传输过程中,因此生成时间和 ETA 并不总是相同的。 :)

      【讨论】:

        猜你喜欢
        • 2017-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-25
        • 2013-08-01
        • 2012-09-20
        • 2019-10-13
        相关资源
        最近更新 更多