-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable checking in encoding profile #160
Comments
When implementing this issue, I would opt for a generic way to disable different states configurable in the encoding profile – c.f. cloud encoding. |
There is already an unmerged (private) pull request that needs some minor work. Will merge soon. |
Working on this in #162. |
Counter-proposal: make checking an automatable state. Advantages:
Disadvantages:
|
@a-tze can't a checker-worker filter on the encoding-profile-properties? In the early days we had room .filter as part of the API – i don't know if that part of the API is still there. |
@MaZderMind Yes, having a filter in the worker is a valid counter-measure, but I did not want that to be a mandatory part of the concept ;) That part of the API is still there, because there is no other way for the recording worker to filter out recording tickets by their time properties on the server-side, e.g. not getting all of them, inspect the property and then reset them. But IMO the worker-side filter is something with a mixed track record, and I would rather tend to drop it when it's in the way. It just makes things intransparent. |
@a-tze From a bare logic standpoint it would be okay to have a "Automatic Checker Worker" which only checks Encoding-Tickets who's Encoding-Profiles have an "eligible-for-automatic-checking=yes" property. I can't see the intransparency in this. |
Hmm. True. This will correlate 99.9% with the master property but an additional property on encoding profiles is not expensive and improves this thing. |
@a-tze most importantly it is explicit and does inherently document what it does and who uses it. |
Properties on encoding profiles get propagated to all projects assigning them. So you can't have automatic-checking disabled in a project, while having it enabled in another!? I would propose introducing a corresponding flag on the project-profile-assignment, as a database column, disabled as default. Saves us from joining even more tables?! I also think generally properties which are inherently important for the application (excluding crs-scripts), should be stored as columns instead of properties. |
@pegro We could have a second Property, like we currently have with |
Are both of these properties relevant to the tracker itself? Different behavior? Showing/hiding buttons? So I'm still not convinced, but if others are fine with it... ;) |
@pegro none of them are relevant to the tracker in any way. Both are solely controls for a checker-worker, that modifies ticket-states (in this case: after local inspection of the files) - not too different to the recording worker. |
Hm I don't think that is true. For this feature to work, the "checking" state needs to be marked as serviceable to make the tickets available via API. Additionally, the database would need to filter in view_serviceable_tickets which tickets in next_state = checking are actually applicable to be assigned to a worker based on that property. Also so far we tried to only have UI to do the non-serviceable stuff and only API for the serviceable states. This change would allow both, UI users and scripts, to do the same thing. To prevent having race conditions between UI and API, you might want to hide the "check" button in the UI and for this you again need to check this property. Maybe I'm wrong here, but this doesn't sound irrelevant to the tracker to me. |
Not necessarily. As discussed above this filtering could also be handled on the API-Level, as it is done with the recording Tickets. But I can see you point here, that the logic might be better fittet within view_serviceable_tickets and then, yes, these Properties are indeed relevant fo the Tracker. |
Mh, if you try to handle that just on API level, then you'd have to move the ticket into a state, where it won't be handled by the checking worker again in the next loop. Otherwise this worker would get assigned a ticket to check whether to check or not to check, and if not he would reset the ticket. And if that worker is fast, UI users will need some luck that the rendered "check" buttons will actually work and not fail, due to a checker worker being assigned (admittedly a split-second) to the ticket, who does nothing but spam logs with "no, that ticket is not to be checked by me. maybe next time..." ;) Yeah for recording ticket it would be enough to have a external trigger for the tracker, on which he would check for recording tickets to move into the next state. A separate worker for this was just the easiest way to get there when we developed that stuff. Filtering tickets is always done in the tracker. A worker only gets a ticket assigned he is actually capable of processing. |
This was previously discussed and I'm still not convinced, actually it feels more like a strict no.
Anyway, I currently don't see any reasons to not finish and merge #171. |
@MaZderMind I just remembered what you mean by filtered on API level. I forgot about the property filter. But still, checking would have to be marked as serviceable. But yeah, that basic checking could be done in postencoding and make the encoding fail, if problems are detected?! |
It should be possible to disable checking for certain encoding profiles. On many events the "subformats" are released without checking.
The text was updated successfully, but these errors were encountered: