我正尝试使用Laravel 5.7
.env
@Entity
@Table
@Async
@JsonIgnoreProperties(ignoreUnknown=true)
public class Data {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column
private Long id;
@Column
@JsonProperty(value="first_name")
private String firstName;
@Column
@JsonProperty(value="last_name")
private String lastName;
@Column
@JsonProperty(value="phone")
private String phoneNumber;
@Column
@JsonProperty(value="email")
private String email;
public Data() {}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
queue.php
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
job_caller.php
'default' => env('QUEUE_CONNECTION', 'sync'),
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
job_name.php
method_name(){
InsereProspeccao::dispatch($path, $evento, $equipe)->onQueue('jobs');
retur some_msg_to_user;
}
不好意思:我正在阅读文档,但我想找出错误的地方!
答案 0 :(得分:5)
您正在使用的QUEUE_CONNECTION=sync
基本上具有同步行为。
请按照以下步骤操作:
运行php artisan queue:table
,将自动为jobs
表创建迁移
运行php artisan migrate
,它将通过运行迁移来创建表
更改QUEUE_CONNECTION=database
,默认情况下,它将自动使用jobs
表来管理队列。
运行php artisan config:clear
清除应用程序配置缓存
那应该很好。检查documentation以获得更多帮助。
答案 1 :(得分:1)
尝试一下:QUEUE_CONNECTION=database
,应该很好。
您还可以设置rabbitmq或其他驱动程序,因为它们的实现要先进得多,并且可以进行更多生产。但是数据库是一个好的开始。