队列驱动程序设置为使用Redis
BufferedWriter bw = null;
BufferedReader br = null;
try {
String str = destination + "//" + inFile.getName();
br = new BufferedReader(new InputStreamReader(new FileInputStream(inFile), "UTF-8"));
bw = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(new File(str), false), "UTF-8"));
String line;
try {
while ((line = br.readLine()) != null) {
bw.write(line);
System.out.println(line);
}
} catch (IOException ex) {
ex.printStackTrace();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
} finally {
try {
if(bw != null)
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (br != null)
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
使用
QUEUE_DRIVER=redis
我们收到的错误是
php /opt/artisan queue:work --tries=1 --queue="data-ingestion-default" --daemon
似乎错误是由于Worker尝试将失败的作业记录到mysql数据库。
但是,我们在这个实例中没有使用MySQL,如果我们在config / database.php中没有连接'mysql',默认的db被称为'development'。
答案 0 :(得分:6)
在config / queue.php中查看失败的配置 默认值为:
'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],
将其更改为使用redis
中查看整个配置文件答案 1 :(得分:0)
您无法使用redis
驱动程序来执行此操作。但是,如果您使用Laravel Horizon,Horizon将自动将失败的作业保存在Redis