We have a script that should function like so:
Script inserts n rows into database inserting the same unique number into the batch column.
Script puts a job on the AWS queue with the batch number.
AWS worker does some processing and fires off another script on our server.
Script on our server inserts the response from the AWS worker into all rows in the batch.
This is all easy except - creating the batch number.
We can't just get the max batch number and add 1 due to multiple users being able to create a batch at the same time.
So what is the most ideal way to do this? The batch number does not have to be an integer although it could be useful.
解决方案
Create a new table called batches that has one row per batch. This table will have an auto-increment column called batchid.
Your script will start by inserting a row into this table. In addition to the batchid, it can also contain the time stamp of when the batch was created, who created it, and perhaps other pertinent information. This id will then be used through the rest of the batch.