我正在开发一个实时比分网站,我的目标是刷新API请求,每5秒,并对其进行缓存(因为我只有每1000个请求小时),并每5秒更新一次该网站的部分内容。
的API请求在PHP完成,因此是数据的排序。不过,我一直在努力实现API请求的更新部分。我希望我的API请求在后台进行更新,以及一些JavaScript以5秒为基础更新网站,以便每5秒钟可以获取新数据。
我很想得到一些帮助。我想在CRON中做一些事情,但主机不提供每5秒运行一次CRON。任何解决我的问题?如何执行在PHP的API调用每5秒异步
回答
只会运行在一个无限循环的PHP脚本,而不是试图运行它重新每隔5秒的最简单方法。
喜欢的东西:
#!/usr/bin/env php
<?php
while (true) {
CacheStuff();
sleep(5);
}
然后使用像羊群的东西,以防止它运行不止一次触发它在cron。
* * * * * flock -n /var/lock/cache_script.lock /path/to/myscript.php
你可以做到没有cron。像这样的东西会工作:
- 用户的浏览器发送请求到您的API;
- 您的API检查缓存中是否存在值(Memcached?),如果它存在 - 从缓存中提供;
- 如果没有缓存条目,你的API使得输出请求,排序/处理回复,然后比一个cron溶液的至少5秒钟
优势过期时间缓存它 - 如果没有你网站上的活跃用户,没有不必要的传出请求。
您也可以考虑在浏览器端使用WebSockets的。
我的意思是对某个公司的基于livescore的api做一个api请求。缓存该数据,并且当有人加载网站时,它会每隔5秒向缓存发送一次请求,如果缓存存在的时间超过5秒,则会发出新的api请求,并且该数据会再次缓存。这基本上无限循环。 –
@SandiKarajic是的,我理解正确然后我的答案仍然是正确的。与'cron'实现不同,我的方式是按需 - 没有用户,没有负载。有用户 - 有外部API请求 –
我的假设: 你不要有cron的,memcached的,Redis的等等(基本存取问题)
样品 可以将数据保存到一个文件作为JSON对象中的任何机会。
例如你的文件名是“5分钟,data.json”
因此您的代码即可;
$timeout_sec = 5;
$file_path = '5min-data.json';
if (file_exists($file_path) && ((filemtime($file_path) - time()) < ($timeout_sec * 60))) {
$data = json_decode(file_get_contents($file_path), true);
}
else {
//produce your data here as array, it is only sample
$data = [
'brand' => 'Mazda',
'model' => 'Mzd3',
'year' => 2016,
'weight' => 1234.5,
'airbags' => [
'front-left',
'front-right',
'back-left'
]
];
file_put_contents ($file_path, json_encode($data));
}
//$data is fresh
- 1. 每5秒异步执行一次Android Web服务
- 2. 异步PHP执行
- 3. PHP异步执行
- 4. 如何在执行异步调用之前阻止执行?
- 5. 如何在运行5秒后停止异步线程
- 6. 如何从PHP执行异步应用程序异步
- 7. 每5秒执行一次脚本
- 8. 在PHP 5中使用mysql_query()进行异步调用吗?
- 9. 如何在调用时立即执行异步调用?
- 10. 在ComponentDidMount上进行异步API调用
- 11. Php,执行动作前等待5秒
- 12. 异步脚本执行PHP
- 13. 同步异步API调用
- 14. 在JavaScript中每隔N秒调用一次异步函数
- 15. 在VSTS中如何每5秒运行20秒webtest
- 16. 如何在后台运行fql请求? (通过php的异步API调用)
- 17. 如何在每次执行之间以5秒的延迟执行此代码5次?
- 18. Anko异步API调用异步
- 19. 如何在asp.net中执行异步Web调用
- 20. 如何在vba中执行异步函数调用
- 21. 如何自动化异步API调用?
- 22. 如何每x秒执行一次方法调用?
- 23. 如何在改造中执行同步API调用1.9
- 24. 用回调执行异步函数吗?
- 25. 在IOS 5中发送异步调用
- 26. 每5秒调用一次函数
- 27. 每5秒调用一次函数角
- 28. 每20秒执行一次php函数
- 29. 执行PHP循环每X秒
- 30. 在node.js中调用API调用的异步并行
欢迎堆栈溢出。你可以改善你的问题。请阅读[如何提问](http://stackoverflow.com/help/how-to-ask),其中包括“如何以智能方式提问”链接。 – zhon