我正在开发一个import React, { Component } from 'react';
import Button from '@material-ui/core/Button';
import logo from './logo.svg';
import './App.css';
import Snack from './Snack.js';
class App extends Component {
constructor(props) {
super(props);
this.snack = React.createRef();
}
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
<Button variant="contained" color="primary" onClick={this.handleHello}>Hello World</Button>
<div>
<Snack ref={ ref => this.snack = ref } />
</div>
</div>
);
}
handleHello = () => {
this.snack.test();
}
}
export default App;
应用程序。
我创建了一个应该设置数据库的命令:
laravel 5.7
我的问题是每个命令都需要花费几分钟才能完成。总的来说,我花了25分钟才能用数据填充整个数据库。
我希望每个命令仅运行1分钟,然后将其杀死。
有人建议如何在laravel命令中完成此操作吗?
答案 0 :(得分:1)
我认为最好的方法是将这些命令提取到后台作业中。然后,该手工艺命令成为使该一个或多个新作业排队的代码。
为什么?通过覆盖这样的值,可以很容易地配置jobs to timeout after x amount of time:
<?php
namespace App\Jobs;
class ProcessPodcast implements ShouldQueue
{
/**
* The number of seconds the job can run before timing out.
*
* @var int
*/
public $timeout = 120;
}
此外,为什么还要刷新数据库?除非这纯粹是一个分析平台(根本没有用户数据),否则这似乎是个疯狂的主意。如果该刷新命令超时可能是一件坏事-您可以查看job chaining以便确保刷新命令成功执行,然后其他命令(现在是新作业)已设置超时。