Prevent infinite push loop between multiple directories

- Add auto increment id to sync-push-queue table to add new profile urls
at the end
- Use REPLACE instead of INSERT to prevent unique key errors
This commit is contained in:
Hypolite Petovan 2018-05-07 22:02:03 -04:00
parent 4de3fcf5f5
commit 9031423278
2 changed files with 6 additions and 4 deletions

View File

@ -190,8 +190,10 @@ CREATE TABLE IF NOT EXISTS `sync-pull-queue` (
-- --
CREATE TABLE IF NOT EXISTS `sync-push-queue` ( CREATE TABLE IF NOT EXISTS `sync-push-queue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) CHARACTER SET utf8 NOT NULL, `url` varchar(255) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`url`) PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- -------------------------------------------------------- -- --------------------------------------------------------

View File

@ -13,7 +13,7 @@ function sync_pull($url)
//If we support it that is. //If we support it that is.
if ($a->config['syncing']['enable_pulling']) { if ($a->config['syncing']['enable_pulling']) {
q("INSERT INTO `sync-pull-queue` (`url`) VALUES ('%s')", dbesc($url)); q("REPLACE INTO `sync-pull-queue` (`url`) VALUES ('%s')", dbesc($url));
} }
} }
@ -28,7 +28,7 @@ function sync_push($url)
//If we support it that is. //If we support it that is.
if ($a->config['syncing']['enable_pushing']) { if ($a->config['syncing']['enable_pushing']) {
q("INSERT INTO `sync-push-queue` (`url`) VALUES ('%s')", dbesc($url)); q("REPLACE INTO `sync-push-queue` (`url`) VALUES ('%s')", dbesc($url));
} }
sync_mark($url); sync_mark($url);
@ -96,7 +96,7 @@ function get_push_targets()
*/ */
function get_push_batch(App $a) function get_push_batch(App $a)
{ {
return q("SELECT * FROM `sync-push-queue` LIMIT %u", intval($a->config['syncing']['max_push_items'])); return q("SELECT * FROM `sync-push-queue` ORDER BY `id` LIMIT %u", intval($a->config['syncing']['max_push_items']));
} }
/** /**