summaryrefslogtreecommitdiff
path: root/app/observers
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-08-12 18:21:47 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-08-12 18:21:47 +0300
commit7ecebdd02df9b11fa6ba4f8033dcfe097935ed66 (patch)
treea080ef380992f880b7b29714772152dc3ac71ed5 /app/observers
parente2f946fddb7caf9757b33ba3dc7de8634f4ee825 (diff)
downloadgitlab-ce-7ecebdd02df9b11fa6ba4f8033dcfe097935ed66.tar.gz
Repository import during project creation often return timeout for medium and large repos.
So lets do it async. First create project, then import repo and create satellite with Sidekiq
Diffstat (limited to 'app/observers')
-rw-r--r--app/observers/project_observer.rb20
1 files changed, 12 insertions, 8 deletions
diff --git a/app/observers/project_observer.rb b/app/observers/project_observer.rb
index c1a4611536d..83c1795b185 100644
--- a/app/observers/project_observer.rb
+++ b/app/observers/project_observer.rb
@@ -1,13 +1,17 @@
class ProjectObserver < BaseObserver
def after_create(project)
- return true if project.forked? || project.imported?
-
- GitlabShellWorker.perform_async(
- :add_repository,
- project.path_with_namespace
- )
-
- log_info("#{project.owner.name} created a new project \"#{project.name_with_namespace}\"")
+ return true if project.forked?
+
+ if project.import?
+ RepositoryImportWorker.perform_in(5.seconds, project.id)
+ else
+ GitlabShellWorker.perform_async(
+ :add_repository,
+ project.path_with_namespace
+ )
+
+ log_info("#{project.owner.name} created a new project \"#{project.name_with_namespace}\"")
+ end
end
def after_update(project)