What i have now:
1. cron.xml
This job has a name: lala
We have a class: Robert9\Thumber\Cron\RenewThumb
There we call a method: renewThumb
2. Cron class from above
We set an "app" = something that works?
We give it a unique name, then we say go and use the class Robert9\Thumber\Job\Thumbnail
3. Because this is a longer job, we use AbstractRebuildJob; idea: walk tru with $start and $batch
this needs three methods: getNextIds, rebuildById and getStatusType
Here i have checked the result, it was "117" like i want to have it, but now
the machine just should send this "117" to rebuildById($id), but it never comes to this method!
If return $db-> has a value (here "117"; it should automatically call rebuildById(117), right?
But the script never reaches my next BREAKPOINT in PHPSTORM with XDEBUG.
Maybe it is a problem, that i return one and not 100 values?
Because in the next round $start is still 0
1. cron.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<cron>
<entry entry_id="lala" cron_class="Robert9\Thumber\Cron\RenewThumb" cron_method="renewThumb" active="1"><![CDATA[{"day_type":"dom","dom":[-1],"hours":[-1],"minutes":[30,40,50]}]]></entry>
</cron>
This job has a name: lala
We have a class: Robert9\Thumber\Cron\RenewThumb
There we call a method: renewThumb
2. Cron class from above
Code:
<?php
namespace Robert9\Thumber\Cron;
class RenewThumb
{
public static function renewThumb()
{
$app = \XF::app();
/** @var Robert9\Thumber\Job\Thumbnail */
\XF::app()->jobManager()->enqueueUnique(
'thThumberRenew' . uniqid(),
'Robert9\Thumber:Thumbnail',
[],
false
);
}
}
We set an "app" = something that works?
We give it a unique name, then we say go and use the class Robert9\Thumber\Job\Thumbnail
3. Because this is a longer job, we use AbstractRebuildJob; idea: walk tru with $start and $batch
this needs three methods: getNextIds, rebuildById and getStatusType
Code:
<?php
namespace Robert9\Thumber\Job;
use XF\Job\AbstractRebuildJob;
// the class called by cron.xml
class Thumbnail extends AbstractRebuildJob
{
protected function getNextIds($start, $batch)
{
$db = $this->app->db();
// for testing i want 1 not 100 as $batch!
$batch = 1;
return $db->fetchAllColumn($db->limit(
"
fetch one/some ids
", $batch
), $start);
}
Here i have checked the result, it was "117" like i want to have it, but now
the machine just should send this "117" to rebuildById($id), but it never comes to this method!
If return $db-> has a value (here "117"; it should automatically call rebuildById(117), right?
But the script never reaches my next BREAKPOINT in PHPSTORM with XDEBUG.
Code:
protected function rebuildById($id)
{
$resource = \XF::finder('XF:ResourceItem')->whereId($id)->fetchOne();
[BREAKPOINT] $b = $resource;
// fetch the thumb by url
do more
}
Maybe it is a problem, that i return one and not 100 values?
Because in the next round $start is still 0
Last edited: