Add item content before the transaction
This commit is contained in:
parent
07dad0eed8
commit
59f8cb16e5
1 changed files with 7 additions and 4 deletions
|
@ -754,7 +754,7 @@ class Item extends BaseObject
|
||||||
// But for the next time we will still have old content in the item table.
|
// But for the next time we will still have old content in the item table.
|
||||||
$item_fields = ['deleted' => true, 'edited' => DateTimeFormat::utcNow(), 'changed' => DateTimeFormat::utcNow(),
|
$item_fields = ['deleted' => true, 'edited' => DateTimeFormat::utcNow(), 'changed' => DateTimeFormat::utcNow(),
|
||||||
'body' => '', 'title' => '', 'content-warning' => '', 'rendered-hash' => '', 'rendered-html' => '',
|
'body' => '', 'title' => '', 'content-warning' => '', 'rendered-hash' => '', 'rendered-html' => '',
|
||||||
'object' => '', 'target' => ''];
|
'object' => '', 'target' => '', 'tag' => '', 'postopts' => '', 'attach' => '', 'file' => ''];
|
||||||
dba::update('item', $item_fields, ['id' => $item['id']]);
|
dba::update('item', $item_fields, ['id' => $item['id']]);
|
||||||
|
|
||||||
Term::insertFromTagFieldByItemId($item['id']);
|
Term::insertFromTagFieldByItemId($item['id']);
|
||||||
|
@ -1337,8 +1337,10 @@ class Item extends BaseObject
|
||||||
|
|
||||||
logger('' . print_r($item,true), LOGGER_DATA);
|
logger('' . print_r($item,true), LOGGER_DATA);
|
||||||
|
|
||||||
dba::transaction();
|
// We are doing this outside of the transaction to avoid timing problems
|
||||||
self::insertContent($item);
|
self::insertContent($item);
|
||||||
|
|
||||||
|
dba::transaction();
|
||||||
$ret = dba::insert('item', $item);
|
$ret = dba::insert('item', $item);
|
||||||
|
|
||||||
// When the item was successfully stored we fetch the ID of the item.
|
// When the item was successfully stored we fetch the ID of the item.
|
||||||
|
@ -1520,7 +1522,8 @@ class Item extends BaseObject
|
||||||
} else {
|
} else {
|
||||||
// By setting the ICID value through the worker we should avoid timing problems.
|
// By setting the ICID value through the worker we should avoid timing problems.
|
||||||
// When the locking works, this shouldn't be needed. But better be prepared.
|
// When the locking works, this shouldn't be needed. But better be prepared.
|
||||||
Worker::add(PRIORITY_HIGH, 'SetItemContentID', $uri);
|
Worker::add(PRIORITY_HIGH, 'SetItemContentID', $item['uri']);
|
||||||
|
logger('Could not insert content for URI ' . $item['uri'] . ' - trying asynchronously');
|
||||||
}
|
}
|
||||||
if ($locked) {
|
if ($locked) {
|
||||||
Lock::remove('item_insert_content');
|
Lock::remove('item_insert_content');
|
||||||
|
@ -1537,7 +1540,7 @@ class Item extends BaseObject
|
||||||
$item_content = dba::selectFirst('item-content', ['id'], ['uri' => $uri]);
|
$item_content = dba::selectFirst('item-content', ['id'], ['uri' => $uri]);
|
||||||
if (DBM::is_result($item_content)) {
|
if (DBM::is_result($item_content)) {
|
||||||
dba::update('item', ['icid' => $item_content['id']], ['icid' => 0, 'uri' => $uri]);
|
dba::update('item', ['icid' => $item_content['id']], ['icid' => 0, 'uri' => $uri]);
|
||||||
logger('Asynchronously fetched content id for URI ' . $uri . ' (' . $item_content['id'] . ')');
|
logger('Asynchronously set item content id for URI ' . $uri . ' (' . $item_content['id'] . ') - Affected: '. (int)dba::affected_rows());
|
||||||
} else {
|
} else {
|
||||||
logger('No item-content found for URI ' . $uri);
|
logger('No item-content found for URI ' . $uri);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue