The unique_key column in xf_deferred is VARBINARY(50)
My deferred class name happens to be 47 characters long and actionTriggerDeferred simply passes Rebuild + Class_Name to the defer method as the unique key:
It would be nice to see:
So we can specify our own unique_key via a hidden input or, quite simply a change of the column definition to be, at least, VARBINARY(100)
My deferred class name happens to be 47 characters long and actionTriggerDeferred simply passes Rebuild + Class_Name to the defer method as the unique key:
PHP:
XenForo_Application::defer($input['cache'], $input['options'], 'Rebuild' . $input['cache'], true);
It would be nice to see:
PHP:
$input = $this->_input->filter(array(
'cache' => XenForo_Input::STRING,
'options' => XenForo_Input::ARRAY_SIMPLE,
'unique_key' => XenForo_Input::STRING
));
if ($input['cache'])
{
if (!$input['unique_key'])
{
$input['unique_key'] = 'Rebuild_' . $input['cache'];
}
$obj = XenForo_Deferred_Abstract::create($input['cache']);
if ($obj)
{
XenForo_Application::defer($input['cache'], $input['options'], $input['unique_key'], true);
}
}
So we can specify our own unique_key via a hidden input or, quite simply a change of the column definition to be, at least, VARBINARY(100)