【发布时间】:2018-05-13 23:12:35
【问题描述】:
我在 Laravel 中创建了命令,该命令从暂存服务器下载(复制)数据库的 .sql 文件并将其粘贴到生产服务器上(要求)。我没有对生产服务器的 SSH 访问权限,因此为该命令创建了路由并从 URL 执行它。这是我的代码。
路线
Route::get('console/import_all',
function () {
Artisan::call('importDatabase:staging', ['tables' => 'all']);
});
命令功能
private function downloadFile($url, $path)
{
sleep(5);
return copy($url, $path);
}
现在大约有 30 多个文件,其中一些文件的大小超过 10MB。我的命令在 SSH(由管理员)和 URL 中都可以正常工作。但问题是当我从 URL 中点击命令时,页面会一直加载直到所有下载完成。 有没有办法从后台执行此操作? 所以如果管理员从管理面板点击按钮,他/她不应该一直等到处理所有文件完成,我可以显示消息 流程已开始,完成后您会通知。
【问题讨论】: