10
10
11
11
use DateTime ;
12
12
use Exception ;
13
- use GhostUnicorns \WebapiLogs \Model \Log \Logger ;
14
- use GhostUnicorns \WebapiLogs \Model \ResourceModel \Entity \LogCollectionFactory ;
15
13
use GhostUnicorns \WebapiLogs \Model \ResourceModel \LogResourceModel ;
16
14
17
15
class Clean
@@ -21,71 +19,36 @@ class Clean
21
19
*/
22
20
private $ config ;
23
21
24
- /**
25
- * @var Logger
26
- */
27
- private $ logger ;
28
-
29
- /**
30
- * @var LogCollectionFactory
31
- */
32
- private $ logCollectionFactory ;
33
-
34
22
/**
35
23
* @var ResourceModel\LogResourceModel
36
24
*/
37
25
private $ logResourceModel ;
38
26
39
- /**
40
- * @param Config $config
41
- * @param Logger $logger
42
- * @param LogCollectionFactory $logCollectionFactory
43
- * @param LogResourceModel $logResourceModel
44
- */
45
27
public function __construct (
46
28
Config $ config ,
47
- Logger $ logger ,
48
- LogCollectionFactory $ logCollectionFactory ,
49
29
LogResourceModel $ logResourceModel
50
30
) {
51
31
$ this ->config = $ config ;
52
- $ this ->logger = $ logger ;
53
- $ this ->logCollectionFactory = $ logCollectionFactory ;
54
32
$ this ->logResourceModel = $ logResourceModel ;
55
33
}
56
34
35
+ public function cleanAll ()
36
+ {
37
+ $ this ->logResourceModel ->getConnection ()->truncateTable ($ this ->logResourceModel ->getMainTable ());
38
+ }
39
+
57
40
/**
58
41
* @throws Exception
59
42
*/
60
43
public function execute ()
61
44
{
62
- if (!$ this ->config ->isEnabled ()) {
63
- return ;
64
- }
65
-
66
- $ this ->logger ->info (__ ('Start webapi logs clean ' ));
67
- $ hours = $ this ->config ->getCleanOlderThanHours ();
68
- $ datetime = new DateTime ('- ' . $ hours . ' hour ' );
69
- $ page = 1 ;
70
-
71
- $ collection = $ this ->logCollectionFactory ->create ();
72
- $ collection = $ collection ->addFieldToSelect (LogResourceModel::LOG_ID )
73
- ->addFieldToFilter (LogResourceModel::CREATED_AT , ['lt ' => $ datetime ])
74
- ->setPageSize (2 );
75
-
76
- $ pageCount = $ collection ->getLastPageNumber ();
77
- $ currentPage = 1 ;
78
- $ tot = 0 ;
79
- while ($ currentPage <= $ pageCount ) {
80
- $ collection ->setCurPage ($ currentPage );
81
- foreach ($ collection as $ row ) {
82
- $ this ->logResourceModel ->delete ($ row );
83
- $ tot ++;
84
- }
85
- $ collection ->clear ();
86
- $ currentPage ++;
87
- }
88
-
89
- $ this ->logger ->info (__ ('End webapi logs clean. Deleted %1 elements. ' , $ tot ));
45
+ $ this ->logResourceModel ->getConnection ()->delete (
46
+ $ this ->logResourceModel ->getMainTable (),
47
+ sprintf (
48
+ '%s < NOW() - INTERVAL %s HOUR ' ,
49
+ LogResourceModel::CREATED_AT ,
50
+ (int )$ this ->config ->getCleanOlderThanHours ()
51
+ )
52
+ );
90
53
}
91
54
}
0 commit comments