我有一个复杂的php cron作业,它从外部网页检索数据,并将所有信息连接到一个用json编码的变量中。整个过程非常缓慢,需要花费很多时间。
关键是我需要从索引页面检索json对象,但我不想加载所有脚本,因为执行时间太长。我一直在做的是告诉cron作业创建一个新文件并编写json对象,我一直在从该文件中检索信息。
我想知道是否有更有效/简单的方法来传输此信息,而无需创建新文件或“手动”执行脚本。我听说你可以使用CURL发送信息,事实是我之前从未使用过这种技术,所以不知道在这种情况下它是否有用。
任何建议都将受到赞赏。
答案 0 :(得分:0)
这是一个非常常见的问题。不应在页面加载时执行长时间运行的任务,因为它会影响ux。让您的时间密集的PHP脚本作为cron作业运行是一个很好的解决方案。 也许使用数据库会更容易。您可以轻松地使用sqlite或“完全成熟”的rdbms来存储您的数据(如mysql或postregs)。它可能是这样的:
时间intesive php脚本每隔x分钟在cronjob上运行。将数据保存到数据库而不是文件。
当用户请求索引页面时,它会向另一个php脚本发送ajax请求。 php脚本在数据库中查找数据并将其返回给用户(如果存在)。