Thanks for the input! I have tried to implement this, a review of the PR would be very appreciated: https://github.com/jenkinsci/generic-webhook-trigger-plugin/pull/305
Den lör 13 apr. 2024 kl 11:27 skrev 'Winter, Markus' via Jenkins Developers <jenkinsci-dev@googlegroups.com>: > Instead of refilling the cache every x minutes you could implement an > https://javadoc.jenkins.io/hudson/model/listeners/ItemListener.html to > react on job changes. This would avoid the problem mentioned in issue 302. > > You would need to implement onloaded(), onUpdated(), onCreated() and > onDeleted() probably. Maybe also onCopied() and onLocationChanged() > depending how you internally manage the data in the cache (instead of a > list you would need a map<String, ParameterizedJob> with job fullname as > key). > > > > When you have your jobs organized in folders then the getAllItems could > probably be made faster by loading each folder in its own thread. But with > the above approach you would need to do this only once at startup so > probably not worth the effort. > > > > Regarding > https://github.com/jenkinsci/generic-webhook-trigger-plugin/pull/273#pullrequestreview-1585610771 > > You could also investigate making your plugin extensible via an > ExtensionPoint. So when others see the need for a different implementation, > they could write their own plugin that just implements the ExtensionPoint > > > > > > *From:* jenkinsci-dev@googlegroups.com <jenkinsci-dev@googlegroups.com> *On > Behalf Of *Tomas Bjerre > *Sent:* Samstag, 13. April 2024 07:13 > *To:* Jenkins Developers <jenkinsci-dev@googlegroups.com> > *Subject:* Jenkins.getInstance().getAllItems(ParameterizedJob.class) slow > in large installations > > > > You don't often get email from tomas.bjerr...@gmail.com. Learn why this > is important <https://aka.ms/LearnAboutSenderIdentification> > > It was reported here: > https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/272 > > That the Generic Webhook Trigger Plugin is slow in large installations. > > I "solved" that by adding a cache and having it configurable in the global > config here: > > https://github.com/jenkinsci/generic-webhook-trigger-plugin/blob/generic-webhook-trigger-2.1.1/src/main/java/org/jenkinsci/plugins/gwt/global/CacheConfig.java > > And implemented cache here: > > https://github.com/jenkinsci/generic-webhook-trigger-plugin/blob/generic-webhook-trigger-2.1.1/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderImpersonater.java > > I'd like to get some feedback on this solution. > > - Does this kind of cache really belong in the plugin? > - In order to invalidate the cache, the plugin starts a scheduled task. > Feels fragile, hard to test and I don't know if it works after a few days > of uptime. > > - Is there a faster way > to Jenkins.getInstance().getAllItems(ParameterizedJob.class); ? > > - Users may not understand the effect of enabling this cache > https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/302#issuecomment-2051821328 > > > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jenkinsci-dev+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/cbea2c0c-efa3-4ef2-813b-d8ee3658500an%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/cbea2c0c-efa3-4ef2-813b-d8ee3658500an%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Jenkins Developers" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jenkinsci-dev/w-jdCAtGh20/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > jenkinsci-dev+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/AS1PR02MB78471557F788B420E66A9BB6870B2%40AS1PR02MB7847.eurprd02.prod.outlook.com > <https://groups.google.com/d/msgid/jenkinsci-dev/AS1PR02MB78471557F788B420E66A9BB6870B2%40AS1PR02MB7847.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAK89W5J9v4njo7qQixGU9%3DqR6oYhWtVm0HJ3ouFP2wwVAsoakA%40mail.gmail.com.