我正在生成用于车辆注册的引脚的网站,我的问题在于,当我想要一次生成很多像50,000针脚的引脚时,需要很长时间才能完成,我想要的是在浏览器加载到页面时生成背景中的引脚的方法,该页面将显示“正在生成引脚”消息,而不是等待50,000个引脚生成在显示消息之前。我正在使用PHP和MYSQL。输出消息而不会终止脚本
1
A
回答
0
你想使用的是一个任务守护进程。然后,您只需开始一项任务并获取一个唯一的ID,然后您可以在“请稍候...”页面上使用该ID来轮询结果是否可用(当然,轮询不是最干净的解决方案,而是最简单的解决方案)。
似乎有一个PHP client for celery;但是你仍然需要用Python编写实际任务的代码。也许还有纯PHP解决方案。
1
您可以将其分成2页:一个用于生成脚位的php脚本,另一个用于向用户显示该信息。
这是为了显示消息到用户的方法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="javascript">
function GeneratePINS(quantity)
{
var myAjax = new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
{
method : 'get',
}) ;
}
}
</script>
</head>
<body onload="GeneratePINS(5000);">
Generating pins...
</body>
</html>
和你generate_pins.php应该是这样的:
<?php
$DEFAULT_VALUE = 100;
$quantity = (isset($_GET['quantity']) && is_numeric($_GET['quantity'])) ? $_GET['quantity'] : $DEFAULT_VALUE;
echo YOUR_METHOD_TO_GENERATE_PINS(quantity);
?>
点忘了这里下载原型JS:http://www.prototypejs.org/download
我希望有帮助:D
相关问题
- 1. Python:终止一个导入的脚本而不会终止导入的脚本
- 2. 消息传输不是0终止
- 3. 如何在python脚本收到SIGTERM时禁止终止消息
- 4. MATLAB脚本不会在Mac上终止
- 5. Python uTorrent通知脚本不会终止
- 6. 循环sed脚本内不会终止
- 7. Bash:脚本输出到终端会话停止,但脚本完成正常
- 8. bash脚本SFTP退出终止脚本
- 9. PHP脚本停止,不错误消息
- 10. 停止R脚本而不会在“包装过程中发生错误”消息
- 11. 正确地终止脚本没有错误消息在Spyder
- 12. 脚本不终止立即
- 13. PHP:停止类的执行而不终止脚本(或包括)
- 14. 在输出后执行长脚本而不会阻止用户执行
- 15. 捕获终端消息/会话文本
- 16. 以bash脚本终止Curl Telnet会话
- 17. xbindkeys不起作用。终止消息
- 18. 在本身内部过滤shell脚本输出,脚本没有终止
- 19. 不发送脚本消息
- 20. 脚本消息不显示
- 21. 异常抛出终止脚本?
- 22. 根据标准输出消息,bash脚本发出嘟嘟声
- 23. 重定向标准输出在GUI将消息打印,而不是终端
- 24. 如何在一定数量的输出后终止脚本
- 25. 的init.d脚本停止回声管到grep输出到终端
- 26. 停止输出终端中的bash脚本
- 27. 启动和停止记录终端输出从bash脚本
- 28. 设置/ p读取ctrl + c作为输入,而不是终止脚本
- 29. Bash脚本捕获输出到终端
- 30. 使用user1终止脚本而不使用循环
我不认为一个网站是专业每种方式来做到这一点。我宁愿在更专门的应用程序中执行此操作,或者只是在cron作业中调用的php脚本。该网站可以调查工作是否准备就绪。 – GolezTrol
好的谢谢你的回应,但我的虚拟主机服务器的cron工作并不是每秒都运行,而是每分钟运行一次。 – KelvinROLEX