javascript setInterval函数和cronjob

时间:2017-11-03 15:12:54

标签: javascript setinterval

目标是在区间函数

中运行代码
test.php

当cron-job每15分钟运行一次以触发setInterval

在我的代码中,我有一个50 seconds函数,其中以间隔时间50 seconds运行代码。但是,当我在本地主机服务器上手动运行我的代码(而不是通过cron-job运行它)并在我的文件位置localhost/test.php的间隔时间(cron-job)之前关闭浏览器窗口时,那里面的代码间隔功能不会运行!

但是,如果浏览器窗口打开,则间隔内的代码会运行。我想知道这是否是因为localhost服务器,如果我通过在实时服务器上设置import Vue from 'vue' import VueRouter from 'vue-router' import VueResource from 'vue-resource'; Vue.config.productionTip = false; Vue.use(VueRouter); Vue.use(VueResource); // define the router here const router = new VueRouter({ routes: [ { path: '/', component: Home, meta: {page_title: 'Home'} }, // ... ] }); Vue.mixin({ methods: { get_req: function(url) { Vue.http.get(url, { before(request) { // before_callback(request); } }).then(response => { // success_callback(response); }, response => { if(response.status == 404) { // Use the router variable you just defined router.push({name: '404'}); } }).then(response => { // always_callback(response); }); } } }); new Vue({ el: '#app', template: '<App/>', components: { App }, router: router }); 来触发代码,那么即使实时服务器上没有浏览器窗口,也会运行区间函数内的代码当cron-job运行时打开或关闭。是真的还是我错过了什么?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您正尝试使用PHP通过CRON运行JavaScript setInterval

setInterval是一个JavaScript函数,通常通过浏览器运行* 浏览器接收PHP脚本的输出,然后运行随附的JavaScript 一旦产生间隔的浏览器窗口/选项卡关闭,间隔就会被破坏。

CRON,不是一个浏览器,根本不关心它运行的脚本的输出。
只是输出中有一些JavaScript,但没有其他任何事情发生。< / p>

*如果要在服务器端运行JavaScript,可能需要阅读有关Node.js的信息

.. setInterval也不是jQuery函数 - 它是原生JavaScript。

答案 1 :(得分:0)

创建一个经常执行某些php的cron作业,就像每分钟一样。 php可以检查它是否是计划时间。如果是,请执行您的任务。如果没有,请退出并等到cron在另一分钟开始重新检查时间表。通过检查一次/分钟的日期/时间导致的服务器负载量将是最小的。