Skip to content
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

Granular esi scheduling for users #682

Closed

Conversation

recursivetree
Copy link
Contributor

This PR builds upon eveseat/eveapi#409 and allows admins to adjust the schedule of esi updates based on conditions.

Admins can specify an update interval associated with an acl role. From all roles a user holds, the one with the shortest update interval is used, and the characters associated with the user will be updated according to that update interval. If no scheduling rule is specified, or the user doesn't hold any roles, a default of one hour is used. This means after upgrading, nothing changes until it is configured to do so.

I've made the decision to bind the update interval to roles and therefore users, opposed to individual characters, because of multiple reasons:

  • the filter system used by squads is computationally expensive. The performance impact of essentially duplicating the squads filter system is difficult to estimate. The solution implemented here avoids this by building on top of squad filters.
  • the squads filter system is not really ready for use by something else without partially overhauling it.
  • touching squads code must be done with care, as it is at the heart of the access control system. We cannot afford to get it wrong. This means more thorough code reviews etc and just more development time

Bildschirmfoto 2024-07-04 um 15 32 52

@recursivetree recursivetree marked this pull request as ready for review July 7, 2024 14:11
@moppa
Copy link
Contributor

moppa commented Jul 30, 2024

@recursivetree I have the use case that I need to increase refresh rate for our main holding corporation toons for a number of users to get Notifications, Contracts etc for Alliance services.
This sounds exactly like what I need and I'd only need to change the update_interval in the DB.
However I see in this code that in certain scenarios here the update_interval gets updated based on the User roles. Would it be possible to add to the UI custom scheduling for certain toons and that those don't get overridden? I believe a lot of ppl have the same use case to get pings for shield timers and whatnot and need higher refresh on certain toons. Or would I just need to avoid touching this UI if I set custom update_interval from DB?

@moppa
Copy link
Contributor

moppa commented Jul 30, 2024

As a reference my user has 40+ characters on SeAT and I need to get notifications more frequently on maybe 5 toons. Then there are a handful of other users with 10+ characters that has 1 character that need more frequent notifications and contracts etc.

@recursivetree
Copy link
Contributor Author

After some consideration, I've come to agree that is is worth it to have per-character instead of per-user scheduling. Therefore I'm going to close this and start a new PR. The eveapi side can remain unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants