forgeplus/app/jobs/sync_mirrored_repository_jo...

33 lines
1.2 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class SyncMirroredRepositoryJob < ApplicationJob
queue_as :default
def perform(repo_id, user_id)
repo = Repository.find_by(id: repo_id)
current_user = User.find_by(id: user_id)
return if repo.blank? || current_user.blank?
# TODO
# 先同步镜像库
if repo.config_accelerator?
puts "[gitea-accelerator]: ###### 镜像库开始同步 ######"
result = Gitea::Accelerator::SyncMirroredService.call(repo.identifier)
puts "[gitea-accelerator]: ###### 镜像库同步状态为 #{result[:status]}"
# TODO 暂时解决从镜像库镜像动作时间先执行的问题
# 避免了Gitea::Repository::SyncMirroredService先执行后加速器Gitea::Accelerator::SyncMirroredService
# 再执行的导致Gitea::Repository::SyncMirroredService执行镜像不是最新代码的问题
sleep 3.seconds
end
sync_common!(repo, current_user)
end
def sync_common!(repo, user)
result = Gitea::Repository::SyncMirroredService.call(repo.owner.login,
repo.identifier, token: user.gitea_token)
repo&.mirror.set_status! if result[:status] === 200
BroadcastMirrorRepoMsgJob.perform_later(repo.id) unless repo&.mirror.waiting?
end
end