2
2
3
3
namespace Bavix \Entry \Commands ;
4
4
5
+ use Bavix \LaravelClickHouse \Database \Eloquent \Model as Entry ;
5
6
use Bavix \Entry \Services \BulkService ;
6
7
use Bavix \Entry \Jobs \BulkWriter ;
7
8
use Illuminate \Console \Command ;
@@ -36,6 +37,7 @@ public function handle(): void
36
37
$ lock ->block (1 );
37
38
// Lock acquired after waiting maximum of second...
38
39
$ batchSize = \config ('entry.batchSize ' , 10000 );
40
+ $ queueName = \config ('entry.queueName ' , 'default ' );
39
41
$ keys = app (BulkService::class)->keys ();
40
42
foreach ($ keys as $ key ) {
41
43
[$ bulkName , $ class ] = \explode (': ' , $ key , 2 );
@@ -47,10 +49,13 @@ public function handle(): void
47
49
$ bulkData [$ itemKey ] = \json_decode ($ itemValue , true );
48
50
}
49
51
50
- $ queueName = \config ('entry.queueName ' , 'default ' );
51
- $ job = new BulkWriter (new $ class , $ bulkData );
52
- $ job ->onQueue ($ queueName );
53
- \dispatch ($ job );
52
+ $ modelEntry = new $ class ;
53
+ $ bulkData = $ this ->bulkHandling ($ modelEntry , $ bulkData );
54
+ if ($ bulkData ) {
55
+ $ job = new BulkWriter ($ modelEntry , $ bulkData );
56
+ $ job ->onQueue ($ queueName );
57
+ \dispatch ($ job );
58
+ }
54
59
}
55
60
}
56
61
} catch (LockTimeoutException $ timeoutException ) {
@@ -60,4 +65,17 @@ public function handle(): void
60
65
}
61
66
}
62
67
68
+ /**
69
+ * The process of processing data before sending it to the queue.
70
+ * Here we analyze the data and Supplement it with information from the heap.
71
+ *
72
+ * @param Entry $entry
73
+ * @param array $bulk
74
+ * @return array
75
+ */
76
+ protected function bulkHandling (Entry $ entry , array $ bulk ): array
77
+ {
78
+ return $ bulk ;
79
+ }
80
+
63
81
}
0 commit comments