class TouchSyncJob < ApplicationJob queue_as :default def perform(touchable) puts "aaaa" case touchable.class.to_s when 'SyncRepositories::Github' || 'SyncRepositories::Gitee' Reposync::SyncRepoService.call(touchable.repo_name) when 'SyncRepositoryBranch' sync_repository = touchable.sync_repository result = [] if sync_repository.sync_direction == 1 result = Reposync::SyncBranchService.call(sync_repository.repo_name, touchable.gitlink_branch_name, sync_repository.sync_direction) else result = Reposync::SyncBranchService.call(sync_repository.repo_name, touchable.external_branch_name, sync_repository.sync_direction) end if result.is_a?(Array) && result[0].to_i == 0 touchable.update_attributes!({sync_status: 1, sync_time: Time.now}) else touchable.update_attributes!({sync_status: 2, sync_time: Time.now}) end end end end