Use task_id in generating the queue file path

The task_id is created anyway as a UUID. So it is very
unique per definition. The only thing needed for the queue
file path is a unique part.

Before the objectid of the MediaEntry was used instead. But
in the sql world the objectid is only available after an
"insert" on the db. And creating the queue_file_path
afterwards would require an "update" on the db. We can save
that. ... for now.
This commit is contained in:
Elrond 2012-02-19 12:13:26 +01:00
parent 99812bbc4a
commit 572d4f01ff

View File

@ -78,11 +78,18 @@ def submit_start(request):
# Generate a slug from the title
entry.generate_slug()
# We generate this ourselves so we know what the taks id is for
# retrieval later.
# (If we got it off the task's auto-generation, there'd be
# a risk of a race condition when we'd save after sending
# off the task)
task_id = unicode(uuid.uuid4())
# Now store generate the queueing related filename
queue_filepath = request.app.queue_store.get_unique_filepath(
['media_entries',
unicode(entry._id),
task_id,
secure_filename(filename)])
# queue appropriately
@ -95,14 +102,7 @@ def submit_start(request):
# Add queued filename to the entry
entry.queued_media_file = queue_filepath
# We generate this ourselves so we know what the taks id is for
# retrieval later.
# (If we got it off the task's auto-generation, there'd be
# a risk of a race condition when we'd save after sending
# off the task)
task_id = unicode(uuid.uuid4())
entry['queued_task_id'] = task_id
entry.queued_task_id = task_id
# Save now so we have this data before kicking off processing
entry.save(validate=True)