background_job.rb 943 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
  2. class Transaction::BackgroundJob
  3. def initialize(item, params = {})
  4. =begin
  5. {
  6. object: 'Ticket',
  7. type: 'update',
  8. ticket_id: 123,
  9. interface_handle: 'application_server', # application_server|websocket|scheduler
  10. changes: {
  11. 'attribute1' => [before,now],
  12. 'attribute2' => [before,now],
  13. },
  14. created_at: Time.zone.now,
  15. user_id: 123,
  16. },
  17. =end
  18. @item = item
  19. @params = params
  20. end
  21. def perform
  22. Setting.where(area: 'Transaction::Backend::Async').order(:name).each { |setting|
  23. backend = Setting.get(setting.name)
  24. next if @params[:disable] && @params[:disable].include?(backend)
  25. backend = Kernel.const_get(backend)
  26. Observer::Transaction.execute_singel_backend(backend, @item, @params)
  27. }
  28. end
  29. def self.run(item, params = {})
  30. generic = new(item, params)
  31. generic.perform
  32. end
  33. end