Version Notes
Bugfix release.
Download this release
Release Info
Developer | Magento Core Team |
Extension | Aoe_Scheduler |
Version | 0.1.3 |
Comparing to | |
See all releases |
Code changes from version 0.1.2 to 0.1.3
app/code/local/Aoe/Scheduler/Model/Observer.php
CHANGED
@@ -82,9 +82,12 @@ class Aoe_Scheduler_Model_Observer extends Mage_Cron_Model_Observer {
|
|
82 |
$schedule->setMessages($messages);
|
83 |
}
|
84 |
|
85 |
-
$
|
86 |
-
->setStatus(Mage_Cron_Model_Schedule::STATUS_SUCCESS)
|
87 |
-
|
|
|
|
|
|
|
88 |
|
89 |
} catch (Exception $e) {
|
90 |
$schedule->setStatus($errorStatus)
|
82 |
$schedule->setMessages($messages);
|
83 |
}
|
84 |
|
85 |
+
if (strtoupper(substr($messages, 0, 6)) != 'ERROR:') {
|
86 |
+
$schedule->setStatus(Mage_Cron_Model_Schedule::STATUS_SUCCESS);
|
87 |
+
} else {
|
88 |
+
$schedule->setStatus(Mage_Cron_Model_Schedule::STATUS_ERROR);
|
89 |
+
}
|
90 |
+
$schedule->setFinishedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
|
91 |
|
92 |
} catch (Exception $e) {
|
93 |
$schedule->setStatus($errorStatus)
|
app/code/local/Aoe/Scheduler/Model/Schedule.php
CHANGED
@@ -20,9 +20,10 @@ class Aoe_Scheduler_Model_Schedule extends Mage_Cron_Model_Schedule {
|
|
20 |
/**
|
21 |
* Run this task now
|
22 |
*
|
|
|
23 |
* @return Aoe_Scheduler_Model_Schedule
|
24 |
*/
|
25 |
-
public function runNow() {
|
26 |
$modelCallback = $this->getJobConfiguration()->getModel();
|
27 |
|
28 |
if (!$this->getCreatedAt()) {
|
@@ -41,24 +42,33 @@ class Aoe_Scheduler_Model_Schedule extends Mage_Cron_Model_Schedule {
|
|
41 |
Mage::throwException(Mage::helper('cron')->__('No callbacks found'));
|
42 |
}
|
43 |
|
44 |
-
|
|
|
|
|
45 |
// another cron started this job intermittently, so skip it
|
46 |
return $this;
|
47 |
}
|
48 |
$this->setExecutedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
-
$this->
|
61 |
-
->setFinishedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
|
62 |
|
63 |
return $this;
|
64 |
}
|
20 |
/**
|
21 |
* Run this task now
|
22 |
*
|
23 |
+
* @param bool $tryLockJob
|
24 |
* @return Aoe_Scheduler_Model_Schedule
|
25 |
*/
|
26 |
+
public function runNow($tryLockJob=true) {
|
27 |
$modelCallback = $this->getJobConfiguration()->getModel();
|
28 |
|
29 |
if (!$this->getCreatedAt()) {
|
42 |
Mage::throwException(Mage::helper('cron')->__('No callbacks found'));
|
43 |
}
|
44 |
|
45 |
+
// lock job requires the record to be saved and having status Mage_Cron_Model_Schedule::STATUS_PENDING
|
46 |
+
// workaround could be to do this: $this->setStatus(Mage_Cron_Model_Schedule::STATUS_PENDING)->save();
|
47 |
+
if ($tryLockJob && !$this->tryLockJob()) {
|
48 |
// another cron started this job intermittently, so skip it
|
49 |
return $this;
|
50 |
}
|
51 |
$this->setExecutedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
|
52 |
|
53 |
+
$messages = call_user_func_array($callback, array());
|
54 |
|
55 |
+
// added by Fabrizio to also save messages when no exception was thrown
|
56 |
+
if (!empty($messages)) {
|
57 |
+
if (is_object($messages)) {
|
58 |
+
$messages = get_class($messages);
|
59 |
+
} elseif (!is_scalar($messages)) {
|
60 |
+
$messages = var_export($messages, 1);
|
61 |
+
}
|
62 |
+
$this->setMessages($messages);
|
63 |
+
}
|
64 |
+
|
65 |
+
if (strtoupper(substr($messages, 0, 6)) != 'ERROR:') {
|
66 |
+
$this->setStatus(Mage_Cron_Model_Schedule::STATUS_SUCCESS);
|
67 |
+
} else {
|
68 |
+
$this->setStatus(Mage_Cron_Model_Schedule::STATUS_ERROR);
|
69 |
+
}
|
70 |
|
71 |
+
$this->setFinishedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
|
|
|
72 |
|
73 |
return $this;
|
74 |
}
|
app/code/local/Aoe/Scheduler/controllers/Adminhtml/CronController.php
CHANGED
@@ -61,12 +61,14 @@ class Aoe_Scheduler_Adminhtml_CronController extends Aoe_Scheduler_Adminhtml_Abs
|
|
61 |
*/
|
62 |
public function scheduleNowAction() {
|
63 |
$codes = $this->getRequest()->getParam('codes');
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
70 |
}
|
71 |
$this->_redirect('*/*/index');
|
72 |
}
|
@@ -80,12 +82,28 @@ class Aoe_Scheduler_Adminhtml_CronController extends Aoe_Scheduler_Adminhtml_Abs
|
|
80 |
*/
|
81 |
public function runNowAction() {
|
82 |
$codes = $this->getRequest()->getParam('codes');
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
$this->_redirect('*/*/index');
|
91 |
}
|
61 |
*/
|
62 |
public function scheduleNowAction() {
|
63 |
$codes = $this->getRequest()->getParam('codes');
|
64 |
+
if (is_array($codes)) {
|
65 |
+
foreach ($codes as $key) {
|
66 |
+
Mage::getModel('cron/schedule') /* @var Aoe_Scheduler_Model_Schedule */
|
67 |
+
->setJobCode($key)
|
68 |
+
->scheduleNow()
|
69 |
+
->save();
|
70 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Scheduled "%s"', $key));
|
71 |
+
}
|
72 |
}
|
73 |
$this->_redirect('*/*/index');
|
74 |
}
|
82 |
*/
|
83 |
public function runNowAction() {
|
84 |
$codes = $this->getRequest()->getParam('codes');
|
85 |
+
if (is_array($codes)) {
|
86 |
+
foreach ($codes as $key) {
|
87 |
+
$schedule = Mage::getModel('cron/schedule') /* @var $schedule Aoe_Scheduler_Model_Schedule */
|
88 |
+
->setJobCode($key)
|
89 |
+
->runNow(false) // without trying to lock the job
|
90 |
+
->save();
|
91 |
+
|
92 |
+
$messages = $schedule->getMessages();
|
93 |
+
|
94 |
+
if ($schedule->getStatus() == Mage_Cron_Model_Schedule::STATUS_SUCCESS) {
|
95 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Ran "%s" (Duration: %s sec)', $key, intval($schedule->getDuration())));
|
96 |
+
if ($messages) {
|
97 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($this->__('"%s" messages:<pre>%s</pre>', $key, $messages));
|
98 |
+
}
|
99 |
+
} else {
|
100 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('Error while running "%s"', $key));
|
101 |
+
if ($messages) {
|
102 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('"%s" messages:<pre>%s</pre>', $key, $messages));
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
}
|
107 |
}
|
108 |
$this->_redirect('*/*/index');
|
109 |
}
|
app/code/local/Aoe/Scheduler/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Aoe_Scheduler>
|
5 |
-
<version>0.1.
|
6 |
</Aoe_Scheduler>
|
7 |
</modules>
|
8 |
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Aoe_Scheduler>
|
5 |
+
<version>0.1.3</version>
|
6 |
</Aoe_Scheduler>
|
7 |
</modules>
|
8 |
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Aoe_Scheduler</name>
|
4 |
-
<version>0.1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -10,9 +10,9 @@
|
|
10 |
<description>This extension allows you to manage your scheduler task. Schedules can be disabled. From version 0.1.0 this extension also comes with a graphical timeline view.</description>
|
11 |
<notes>Bugfix release.</notes>
|
12 |
<authors><author><name>Fabrizio Branca</name><user>auto-converted</user><email>magento@fabrizio-branca.de</email></author></authors>
|
13 |
-
<date>2011-
|
14 |
-
<time>
|
15 |
-
<contents><target name="magelocal"><dir name="Aoe"><dir name="Scheduler"><dir name="Block"><dir name="Adminhtml"><dir name="Cron"><file name="Grid.php" hash="794200ea4a6885a19b86c972d06b3693"/></dir><dir name="Scheduler"><file name="Grid.php" hash="73eb69714d3ec1a6b3e5ceb566067ad1"/></dir><file name="Cron.php" hash="457cf34ffe0fde57ce3bd200d9661507"/><file name="Scheduler.php" hash="63229aa4b83993934252c23e6e9c0945"/><file name="Timeline.php" hash="f8f8cebf664d74e970cb8f4b01785b8f"/><file name="TimelineDetail.php" hash="791ffc9beaf7317631d9bc7ed7519239"/></dir></dir><dir name="Helper"><file name="Data.php" hash="9ba5f7c21da1a226e531162b9e9622d2"/></dir><dir name="Model"><dir name="Collection"><file name="Crons.php" hash="733ae06d490b4b371d70ee275bd3a3a9"/></dir><file name="Configuration.php" hash="1c21f0c4fa50cd4980fe1bdb7e4956f3"/><file name="Observer.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Aoe_Scheduler</name>
|
4 |
+
<version>0.1.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
10 |
<description>This extension allows you to manage your scheduler task. Schedules can be disabled. From version 0.1.0 this extension also comes with a graphical timeline view.</description>
|
11 |
<notes>Bugfix release.</notes>
|
12 |
<authors><author><name>Fabrizio Branca</name><user>auto-converted</user><email>magento@fabrizio-branca.de</email></author></authors>
|
13 |
+
<date>2011-10-06</date>
|
14 |
+
<time>21:06:39</time>
|
15 |
+
<contents><target name="magelocal"><dir name="Aoe"><dir name="Scheduler"><dir name="Block"><dir name="Adminhtml"><dir name="Cron"><file name="Grid.php" hash="794200ea4a6885a19b86c972d06b3693"/></dir><dir name="Scheduler"><file name="Grid.php" hash="73eb69714d3ec1a6b3e5ceb566067ad1"/></dir><file name="Cron.php" hash="457cf34ffe0fde57ce3bd200d9661507"/><file name="Scheduler.php" hash="63229aa4b83993934252c23e6e9c0945"/><file name="Timeline.php" hash="f8f8cebf664d74e970cb8f4b01785b8f"/><file name="TimelineDetail.php" hash="791ffc9beaf7317631d9bc7ed7519239"/></dir></dir><dir name="Helper"><file name="Data.php" hash="9ba5f7c21da1a226e531162b9e9622d2"/></dir><dir name="Model"><dir name="Collection"><file name="Crons.php" hash="733ae06d490b4b371d70ee275bd3a3a9"/></dir><file name="Configuration.php" hash="1c21f0c4fa50cd4980fe1bdb7e4956f3"/><file name="Observer.php" hash="e9f408fa047eb798ca8856ade9984e8d"/><file name="Schedule.php" hash="dee187f972e294eeb1954dc6e049c1d3"/><file name="TestTask.php" hash="96ac1c00c24cf959cbef452dd57900e4"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AbstractController.php" hash="4435f29815e4253eb47f15221b5c0d43"/><file name="CronController.php" hash="8cc4e61d1dfeeebfc7db4427523ba0d1"/><file name="SchedulerController.php" hash="95ffe62214e872e566332de6a2141cab"/><file name="TimelineController.php" hash="c0ccb4163c8495c9b8b07a869e27563b"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="42f04275451a6837516cdcef0a14c40b"/><file name="config.xml" hash="843bddb9cbf91210105cd1538adeabc9"/><file name="system.xml" hash="fa7247753c1df15c8bdf5a9f76d9b712"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Aoe_Scheduler.xml" hash="3fa179507d5b3b3f1cde3be281ee1a26"/></dir></target><target name="mage"><dir name="shell"><file name="scheduler.php" hash="1d9ab318d9cc13448cd93a99038f9b3b"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Aoe_Scheduler.csv" hash="f06c379c1170bc67f978b05943197601"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="aoe_scheduler"><file name="timeline.phtml" hash="7e2a11d5516206f219e4f5286b9c8656"/><file name="timeline_detail.phtml" hash="d353689ad539f2adc0df97716ff7eb88"/></dir></dir><dir name="layout"><dir name="aoe_scheduler"><file name="aoe_scheduler.xml" hash="95be2d020b3281f3400a2edb809fce79"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="aoe_scheduler"><dir name="Images"><file name="bg_notifications.gif" hash="df73b8aa7e48bb56e0a644245aa3683f"/><file name="gradient.png" hash="17f6c6ef64b1682a06060950933561c9"/><file name="hour.gif" hash="91a63b82b2b41a046ca938aea3238a41"/></dir><dir name="JavaScript"><file name="common.js" hash="af6dadb7e3a18a2d4a882d9249f3f7a0"/><file name="jquery-1.6.2.min.js" hash="a1a8cb16a060f6280a767187fd22e037"/><file name="tooltip.dynamic.js" hash="c6737dd54890ca0cac816f3fecaf33d9"/><file name="tooltip.js" hash="d731eecbe152f86d3c702b55b4767fb1"/></dir><dir name="StyleSheet"><file name="bars.css" hash="c98df4a3611f628dba01b8cd0142f3d2"/><file name="timeline.css" hash="41510bd533aaeab5df46fa49210cfc9f"/></dir></dir></dir></dir></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|