【问题标题】:Calling API every 24hr period with PHP使用 PHP 每 24 小时调用一次 API
【发布时间】:2021-01-09 00:09:51
【问题描述】:

我的 API 调用检索了将数据提取到我的站点所需的信息

但是,API 调用需要每 24 小时调用一次,但我不能使用 cron

有没有人知道我可以如何使用 PHP 或 JS 做到这一点?

这是我的(简化的)电话:

$postdata = http_build_query(
    array(
    'username' => 'user',
    'password'=>'pass'
));

/* API URL */
$url = ' *my_api_url_here* ';
  
$ch = curl_init($url);
  
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
echo json_encode($result);

curl_close($ch);

【问题讨论】:

  • 什么消耗echo json_encode($result);?为什么它需要每 24 小时调用一次,它不存储或缓存任何东西,为什么你没有 cron,还有在线的可以向你的站点发出请求。您甚至可以使用 while 循环,但考虑到您没有 cron 很可能您将被限制为 30 秒的执行时间。是的,js 也可以通过 ajax 执行此操作,但您需要用户访问该站点。有没有想过换主机?
  • @LawrenceCherone 我无法更改主机,这是针对拥有自己主机的客户。 API 调用需要每 24 小时向我发送一个每 24 小时更改一次的令牌。我宁愿用 cron 来做,但不幸的是我没有那个选项,所以我正在寻找替代解决方案。
  • 情节变厚了,为什么不在提供令牌的服务器上放一些代码(受密码保护),然后从您的站点获取令牌,而不是尝试从他们的 api 中将其发布到您的 api,当然至少有一个你的服务器有 cron
  • @LawrenceCherone API 生成令牌,我必须调用 API 来获取令牌(每 24 小时)才能使系统工作,所以目前我上面的 PHP 工作但我必须去 PHP文件并手动刷新以获得不太理想的令牌...我认为我不能在服务器上进行太多更改 - 我只有 FTP 访问权限
  • 您需要一些应用程序每 24 小时或其他间隔启动一次您的 php 代码,然后检查是否是调用 API 的时间。如果你不能使用 cron 或类似的,那么你需要有一个 24x7 运行的 PHP 进程,其中一些 while(true) { ... sleep(...);} 不是一个好的选择,但可以工作。

标签: javascript php jquery api curl


【解决方案1】:

在特定时间段内调用代码的最佳方式,是为此工作创建的 cron 作业

如果您使用共享主机平台,例如 DA 或 cPanel 或其他任何东西,您可以使用他们的 cronjob 系统

Working with cron jobs in DirectAdmin = 基于 youtube 搜索

Working with cron jobs in cPanel = 基于 youtube 搜索

Working with cron jobs in Webmin = 基于 youtube 搜索

How to setup scheduled tasks in Plesk = 基于 youtube 搜索

如果你没有,在基于 linux 的操作系统中,cron 作业的最佳解决方案是 crontab

Managing Cron Jobs in PHP with Crontab = 基于谷歌搜索

【讨论】:

  • 感谢我的研究,但我已经说过我不能使用 cron 作业
  • 对不起@cheesycoder。我没有看到你写了不能使用 cron 工作!对不起我的错误
  • 没关系!感谢您的研究:)
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多