Open niravassar opened 2 years ago
SyncPluginsJobService - job runs every hour, grailsPluginService.refresh()
GrailsPluginService -
GrailsPluginRepositoryService - gets infor from a plugin like package name and owner, and readme etc
PluginController.index calls grailsPluginsRepository.findByQuery, which will call findAll if no query is sent - this just sorts it.
in the job, there is process(). this calls grailsPluginRepository. and this gets info about 1 plugin.
Theory on Whats Going on
Recreate on Local
SyncPluginsJobService
run every 15 to 30 seconds. Minimally Invasive Proposed Solution
More involved solution
Untangle the tasks by only creating one task per plugin. Each plugin will have one task and the http calls will be consecutively run to get repo information, readme information and owner information. They will only execute if the previous one completes successfully and will be synchronous.
However, the tasks between plugins will be aysnchrous as the next plugin will fire out a task as well. here is the PR https://github.com/grails/grails3-plugins/pull/35
Grails plugins page at https://plugins.grails.org/ shows 0 plugins sometimes and we have to go in an restart it. then it works again.
I took at look at this in depth and will post some notes