在网络应用程序中,即使我不在网页上,有没有办法在特定时间 运行 一个功能?
In web-application, is there any way to run a function at a specific time even if I am not on the webpage?
class App extends React.Component {
state = {
seconds: moment().format('HHmmss'),
turned: true,
}
tick() {
this.setState(() => ({
seconds: moment().format('HHmmss'),
}));
if (this.state.seconds >= '233000' && this.state.seconds <= '234000') { //make turned false between 23:30 - 23:40
this.setState(() => ({
turned: false,
}));
}
}
componentDidMount() {
this.interval = setInterval(() => this.submitToToday(), 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
}
submitToToday() {
if (this.state.seconds >= '234500' && this.state.seconds <= '235500' && this.state.turned === false) {
// HERE MongoDB update that I want to run
this.setState(() => ({
turned: true,
}));
}
}
在此代码中,我在 23:45 - 23:55.
之间将函数“submitToToday()”设置为 运行 一次
当我在网页上时这很好用,但当我不在网页上时这将不起作用。即使我不在网页上,有什么方法可以 运行 代码?
或者,是否可以让托管服务只打开网页?我正在使用 DigitalOcean。
如果它是评论所建议的数据库操作,那么执行此操作的最佳方法是在 CRON 作业中。对于 Meteor,只是 select 您在 Atmosphere 上最喜欢的 CRON 作业包之一:https://atmospherejs.com/?q=cron
之后,您可以调用 Meteor 方法,该方法将在 CRON 中为给定时间的给定任务 运行 创建一个新条目。
class App extends React.Component {
state = {
seconds: moment().format('HHmmss'),
turned: true,
}
tick() {
this.setState(() => ({
seconds: moment().format('HHmmss'),
}));
if (this.state.seconds >= '233000' && this.state.seconds <= '234000') { //make turned false between 23:30 - 23:40
this.setState(() => ({
turned: false,
}));
}
}
componentDidMount() {
this.interval = setInterval(() => this.submitToToday(), 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
}
submitToToday() {
if (this.state.seconds >= '234500' && this.state.seconds <= '235500' && this.state.turned === false) {
// HERE MongoDB update that I want to run
this.setState(() => ({
turned: true,
}));
}
}
在此代码中,我在 23:45 - 23:55.
之间将函数“submitToToday()”设置为 运行 一次当我在网页上时这很好用,但当我不在网页上时这将不起作用。即使我不在网页上,有什么方法可以 运行 代码?
或者,是否可以让托管服务只打开网页?我正在使用 DigitalOcean。
如果它是评论所建议的数据库操作,那么执行此操作的最佳方法是在 CRON 作业中。对于 Meteor,只是 select 您在 Atmosphere 上最喜欢的 CRON 作业包之一:https://atmospherejs.com/?q=cron 之后,您可以调用 Meteor 方法,该方法将在 CRON 中为给定时间的给定任务 运行 创建一个新条目。