Constraint violations in jms_job_statistics#147
Open
fduch wants to merge 1 commit into
Open
Conversation
…rder to avoid statistics duplicates errors
dorineal
approved these changes
Sep 23, 2016
|
We encounter the same issue with long running job. I currently don't explain how the code can execute 10'000'000 ticks in the same second, I'm not enough familiar with PHP internal. |
Owner
|
Instead of changing the database, I would prefer if we ensure that we do not create a new entry for the same timestamp since sub-second resolution is probably not really helpful anyway. This could be done by tracking the last timestamp we have inserted and just returning if the current timestamp is still the same in the onTick method. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
During RunCommand execution i often raise such an exception:
The reason is that
jms_job_statisticstable has complex primary key consists ofjob_id,characteristic,createdAtcolumns. I am facing constraint violations for this key when there are several attempts to write job statistic during the same second (in this case all the values of key columns have the same value).Theoretically we can try to reduce frequency of Application::onTick calls by increasing the ticks count in Application's declare statement, but this approach is not so reliable.
What if we change
jms_job_statisticsby creating autoincrement simple primary key and adding index forjob_idcolumn (for effective fetching statistics info for the job)?