Sha256: 597926325f26bd0d0eeef60713cb1151389e5c78017401f562133ebb08371549
Contents?: true
Size: 1.25 KB
Versions: 7
Compression:
Stored size: 1.25 KB
Contents
module Writefully module Workers class Handyman < BaseWorker include Helpers::Handyman::Builder attr_reader :site def build @site = Site.where(id: message[:site_id]).first @hammer = Tools::Hammer.new_link(message.merge({ domain: site.domain })) # create the repository repo = @hammer.future.forge # add sample content @initializer = Tools::Initializer.new_link(message.merge({ ssh_url: repo.value.ssh_url })) initialize_sample_content # add web hook hook = @hammer.future.add_hook_for(repo.value.name) complete_site_setup(repo.value, hook.value) ensure @hammer.terminate @initializer.terminate close_db_connection! end def synchronize @synchronizer = Tools::Synchronizer.new_link(message) synced = @synchronizer.future.sync Writefully.logger.info "Synchronized #{message[:site_slug]}" if synced.value ensure @synchronizer.terminate end def on_death actor, reason if site Writefully.redis.with { |c| s.sadd "site:#{site.id}:errors", reason.message } site.update_attributes(processing: false, healty: false) end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems