Kill JsonIO and fix JSON driver caching issues (#2796)

* Kill JsonIO and fix JSON driver caching issues

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Ensure lock covers critical region in set()

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Make tests pass

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Use pickle over deepcopy in Config

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Fix temp instance creation

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Serialise value before doing anything in set()

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
This commit is contained in:
Toby Harradine
2019-06-28 04:49:45 +10:00
committed by Michael H
parent f3bbfdc64d
commit bff7e214ab
9 changed files with 133 additions and 157 deletions

View File

@@ -1359,9 +1359,9 @@ class Core(commands.Cog, CoreLogic):
docs = await db[c_name].find().to_list(None)
for item in docs:
item_id = str(item.pop("_id"))
output = item
target = JSON(c_name, item_id, data_path_override=c_data_path)
await target.jsonIO._threadsafe_save_json(output)
target.data = item
await target._save()
backup_filename = "redv3-{}-{}.tar.gz".format(
instance_name, ctx.message.created_at.strftime("%Y-%m-%d %H-%M-%S")
)