roundhouse-x 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +16 -0
  4. data/3.0-Upgrade.md +70 -0
  5. data/Changes.md +1127 -0
  6. data/Gemfile +27 -0
  7. data/LICENSE +7 -0
  8. data/README.md +52 -0
  9. data/Rakefile +9 -0
  10. data/bin/roundhouse +19 -0
  11. data/bin/roundhousectl +93 -0
  12. data/lib/generators/roundhouse/templates/worker.rb.erb +9 -0
  13. data/lib/generators/roundhouse/templates/worker_spec.rb.erb +6 -0
  14. data/lib/generators/roundhouse/templates/worker_test.rb.erb +8 -0
  15. data/lib/generators/roundhouse/worker_generator.rb +49 -0
  16. data/lib/roundhouse/actor.rb +39 -0
  17. data/lib/roundhouse/api.rb +859 -0
  18. data/lib/roundhouse/cli.rb +396 -0
  19. data/lib/roundhouse/client.rb +210 -0
  20. data/lib/roundhouse/core_ext.rb +105 -0
  21. data/lib/roundhouse/exception_handler.rb +30 -0
  22. data/lib/roundhouse/fetch.rb +154 -0
  23. data/lib/roundhouse/launcher.rb +98 -0
  24. data/lib/roundhouse/logging.rb +104 -0
  25. data/lib/roundhouse/manager.rb +236 -0
  26. data/lib/roundhouse/middleware/chain.rb +149 -0
  27. data/lib/roundhouse/middleware/i18n.rb +41 -0
  28. data/lib/roundhouse/middleware/server/active_record.rb +13 -0
  29. data/lib/roundhouse/middleware/server/logging.rb +40 -0
  30. data/lib/roundhouse/middleware/server/retry_jobs.rb +206 -0
  31. data/lib/roundhouse/monitor.rb +124 -0
  32. data/lib/roundhouse/paginator.rb +42 -0
  33. data/lib/roundhouse/processor.rb +159 -0
  34. data/lib/roundhouse/rails.rb +24 -0
  35. data/lib/roundhouse/redis_connection.rb +77 -0
  36. data/lib/roundhouse/scheduled.rb +115 -0
  37. data/lib/roundhouse/testing/inline.rb +28 -0
  38. data/lib/roundhouse/testing.rb +193 -0
  39. data/lib/roundhouse/util.rb +68 -0
  40. data/lib/roundhouse/version.rb +3 -0
  41. data/lib/roundhouse/web.rb +264 -0
  42. data/lib/roundhouse/web_helpers.rb +249 -0
  43. data/lib/roundhouse/worker.rb +90 -0
  44. data/lib/roundhouse.rb +177 -0
  45. data/roundhouse.gemspec +27 -0
  46. data/test/config.yml +9 -0
  47. data/test/env_based_config.yml +11 -0
  48. data/test/fake_env.rb +0 -0
  49. data/test/fixtures/en.yml +2 -0
  50. data/test/helper.rb +49 -0
  51. data/test/test_api.rb +521 -0
  52. data/test/test_cli.rb +389 -0
  53. data/test/test_client.rb +294 -0
  54. data/test/test_exception_handler.rb +55 -0
  55. data/test/test_fetch.rb +206 -0
  56. data/test/test_logging.rb +34 -0
  57. data/test/test_manager.rb +169 -0
  58. data/test/test_middleware.rb +160 -0
  59. data/test/test_monitor.rb +258 -0
  60. data/test/test_processor.rb +176 -0
  61. data/test/test_rails.rb +23 -0
  62. data/test/test_redis_connection.rb +127 -0
  63. data/test/test_retry.rb +390 -0
  64. data/test/test_roundhouse.rb +87 -0
  65. data/test/test_scheduled.rb +120 -0
  66. data/test/test_scheduling.rb +75 -0
  67. data/test/test_testing.rb +78 -0
  68. data/test/test_testing_fake.rb +240 -0
  69. data/test/test_testing_inline.rb +65 -0
  70. data/test/test_util.rb +18 -0
  71. data/test/test_web.rb +605 -0
  72. data/test/test_web_helpers.rb +52 -0
  73. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  74. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  75. data/web/assets/images/logo.png +0 -0
  76. data/web/assets/images/status/active.png +0 -0
  77. data/web/assets/images/status/idle.png +0 -0
  78. data/web/assets/images/status-sd8051fd480.png +0 -0
  79. data/web/assets/javascripts/application.js +83 -0
  80. data/web/assets/javascripts/dashboard.js +300 -0
  81. data/web/assets/javascripts/locales/README.md +27 -0
  82. data/web/assets/javascripts/locales/jquery.timeago.ar.js +96 -0
  83. data/web/assets/javascripts/locales/jquery.timeago.bg.js +18 -0
  84. data/web/assets/javascripts/locales/jquery.timeago.bs.js +49 -0
  85. data/web/assets/javascripts/locales/jquery.timeago.ca.js +18 -0
  86. data/web/assets/javascripts/locales/jquery.timeago.cs.js +18 -0
  87. data/web/assets/javascripts/locales/jquery.timeago.cy.js +20 -0
  88. data/web/assets/javascripts/locales/jquery.timeago.da.js +18 -0
  89. data/web/assets/javascripts/locales/jquery.timeago.de.js +18 -0
  90. data/web/assets/javascripts/locales/jquery.timeago.el.js +18 -0
  91. data/web/assets/javascripts/locales/jquery.timeago.en-short.js +20 -0
  92. data/web/assets/javascripts/locales/jquery.timeago.en.js +20 -0
  93. data/web/assets/javascripts/locales/jquery.timeago.es.js +18 -0
  94. data/web/assets/javascripts/locales/jquery.timeago.et.js +18 -0
  95. data/web/assets/javascripts/locales/jquery.timeago.fa.js +22 -0
  96. data/web/assets/javascripts/locales/jquery.timeago.fi.js +28 -0
  97. data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +16 -0
  98. data/web/assets/javascripts/locales/jquery.timeago.fr.js +17 -0
  99. data/web/assets/javascripts/locales/jquery.timeago.he.js +18 -0
  100. data/web/assets/javascripts/locales/jquery.timeago.hr.js +49 -0
  101. data/web/assets/javascripts/locales/jquery.timeago.hu.js +18 -0
  102. data/web/assets/javascripts/locales/jquery.timeago.hy.js +18 -0
  103. data/web/assets/javascripts/locales/jquery.timeago.id.js +18 -0
  104. data/web/assets/javascripts/locales/jquery.timeago.it.js +16 -0
  105. data/web/assets/javascripts/locales/jquery.timeago.ja.js +19 -0
  106. data/web/assets/javascripts/locales/jquery.timeago.ko.js +17 -0
  107. data/web/assets/javascripts/locales/jquery.timeago.lt.js +20 -0
  108. data/web/assets/javascripts/locales/jquery.timeago.mk.js +20 -0
  109. data/web/assets/javascripts/locales/jquery.timeago.nl.js +20 -0
  110. data/web/assets/javascripts/locales/jquery.timeago.no.js +18 -0
  111. data/web/assets/javascripts/locales/jquery.timeago.pl.js +31 -0
  112. data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +16 -0
  113. data/web/assets/javascripts/locales/jquery.timeago.pt.js +16 -0
  114. data/web/assets/javascripts/locales/jquery.timeago.ro.js +18 -0
  115. data/web/assets/javascripts/locales/jquery.timeago.rs.js +49 -0
  116. data/web/assets/javascripts/locales/jquery.timeago.ru.js +34 -0
  117. data/web/assets/javascripts/locales/jquery.timeago.sk.js +18 -0
  118. data/web/assets/javascripts/locales/jquery.timeago.sl.js +44 -0
  119. data/web/assets/javascripts/locales/jquery.timeago.sv.js +18 -0
  120. data/web/assets/javascripts/locales/jquery.timeago.th.js +20 -0
  121. data/web/assets/javascripts/locales/jquery.timeago.tr.js +16 -0
  122. data/web/assets/javascripts/locales/jquery.timeago.uk.js +34 -0
  123. data/web/assets/javascripts/locales/jquery.timeago.uz.js +19 -0
  124. data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +20 -0
  125. data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +20 -0
  126. data/web/assets/stylesheets/application.css +746 -0
  127. data/web/assets/stylesheets/bootstrap.css +9 -0
  128. data/web/locales/cs.yml +68 -0
  129. data/web/locales/da.yml +68 -0
  130. data/web/locales/de.yml +69 -0
  131. data/web/locales/el.yml +68 -0
  132. data/web/locales/en.yml +77 -0
  133. data/web/locales/es.yml +69 -0
  134. data/web/locales/fr.yml +69 -0
  135. data/web/locales/hi.yml +75 -0
  136. data/web/locales/it.yml +69 -0
  137. data/web/locales/ja.yml +69 -0
  138. data/web/locales/ko.yml +68 -0
  139. data/web/locales/nl.yml +68 -0
  140. data/web/locales/no.yml +69 -0
  141. data/web/locales/pl.yml +59 -0
  142. data/web/locales/pt-br.yml +68 -0
  143. data/web/locales/pt.yml +67 -0
  144. data/web/locales/ru.yml +75 -0
  145. data/web/locales/sv.yml +68 -0
  146. data/web/locales/ta.yml +75 -0
  147. data/web/locales/zh-cn.yml +68 -0
  148. data/web/locales/zh-tw.yml +68 -0
  149. data/web/views/_footer.erb +22 -0
  150. data/web/views/_job_info.erb +84 -0
  151. data/web/views/_nav.erb +66 -0
  152. data/web/views/_paging.erb +23 -0
  153. data/web/views/_poll_js.erb +5 -0
  154. data/web/views/_poll_link.erb +7 -0
  155. data/web/views/_status.erb +4 -0
  156. data/web/views/_summary.erb +40 -0
  157. data/web/views/busy.erb +90 -0
  158. data/web/views/dashboard.erb +75 -0
  159. data/web/views/dead.erb +34 -0
  160. data/web/views/layout.erb +31 -0
  161. data/web/views/morgue.erb +71 -0
  162. data/web/views/queue.erb +45 -0
  163. data/web/views/queues.erb +27 -0
  164. data/web/views/retries.erb +74 -0
  165. data/web/views/retry.erb +34 -0
  166. data/web/views/scheduled.erb +54 -0
  167. data/web/views/scheduled_job_info.erb +8 -0
  168. metadata +404 -0
@@ -0,0 +1,67 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ pt:
3
+ Dashboard: Dashboard
4
+ Status: Estado
5
+ Time: Tempo
6
+ Namespace: Namespace
7
+ Realtime: Tempo real
8
+ History: Histórico
9
+ Busy: Ocupado
10
+ Processed: Processados
11
+ Failed: Falhados
12
+ Scheduled: Agendados
13
+ Retries: Tentativas
14
+ Enqueued: Em espera
15
+ Worker: Worker
16
+ LivePoll: Live Poll
17
+ StopPolling: Desactivar Live Poll
18
+ Queue: Fila
19
+ Class: Classe
20
+ Job: Tarefa
21
+ Arguments: Argumentos
22
+ Started: Iniciados
23
+ ShowAll: Mostrar todos
24
+ CurrentMessagesInQueue: Mensagens na fila <span class='title'>%{queue}</span>
25
+ Delete: Apagar
26
+ AddToQueue: Adicionar à fila
27
+ AreYouSureDeleteJob: Tem a certeza que deseja eliminar esta tarefa?
28
+ AreYouSureDeleteQueue: Tem a certeza que deseja eliminar a fila %{queue}?
29
+ Queues: Filas
30
+ Size: Tamanho
31
+ Actions: Acções
32
+ NextRetry: Próxima Tentativa
33
+ RetryCount: Tentativas efectuadas
34
+ RetryNow: Tentar novamente
35
+ LastRetry: Última Tentativa
36
+ OriginallyFailed: Falhou inicialmente
37
+ AreYouSure: Tem a certeza?
38
+ DeleteAll: Eliminar todos
39
+ RetryAll: Tentar tudo novamente
40
+ NoRetriesFound: Não foram encontradas tentativas
41
+ Error: Erro
42
+ ErrorClass: Classe de Erro
43
+ ErrorMessage: Mensagem de erro
44
+ ErrorBacktrace: Backtrace do Erro
45
+ GoBack: ← Voltar
46
+ NoScheduledFound: Não foram encontradas tarefas agendadas
47
+ When: Quando
48
+ ScheduledJobs: Tarefas agendadas
49
+ idle: livre
50
+ active: activo
51
+ Version: Versão
52
+ Connections: Conexões
53
+ MemoryUsage: Utilização de Memória
54
+ PeakMemoryUsage: Pico de utilização de memória
55
+ Uptime: Uptime (em dias)
56
+ OneWeek: 1 semana
57
+ OneMonth: 1 mês
58
+ ThreeMonths: 3 meses
59
+ SixMonths: 6 meses
60
+ Failures: Falhas
61
+ DeadJobs: Tarefas mortas
62
+ NoDeadJobsFound: Não foram encontradas tarefas mortas
63
+ Dead: Morto
64
+ Processes: Processos
65
+ Thread: Thread
66
+ Threads: Threads
67
+ Jobs: Tarefas
@@ -0,0 +1,75 @@
1
+ ru:
2
+ Dashboard: Панель управления
3
+ Status: Статус
4
+ Time: Время
5
+ Namespace: Пространство имен
6
+ Realtime: Сейчас
7
+ History: История
8
+ Busy: Занят
9
+ Processed: Обработано
10
+ Failed: Провалено
11
+ Scheduled: Запланировано
12
+ Retries: Попытки
13
+ Enqueued: В очереди
14
+ Worker: Обработчик
15
+ LivePoll: Постоянный опрос
16
+ StopPolling: Остановить опрос
17
+ Queue: Очередь
18
+ Class: Класс
19
+ Job: Задача
20
+ Arguments: Аргументы
21
+ Extras: Дополнительно
22
+ Started: Запущено
23
+ ShowAll: Показать все
24
+ CurrentMessagesInQueue: Текущие задачи в очереди <span class='title'>%{queue}</span>
25
+ Delete: Удалить
26
+ AddToQueue: Добавить в очередь
27
+ AreYouSureDeleteJob: Вы уверены, что хотите удалить эту задачу?
28
+ AreYouSureDeleteQueue: Вы уверены, что хотите удалить очередь %{queue}?
29
+ Queues: Очереди
30
+ Size: Размер
31
+ Actions: Действия
32
+ NextRetry: Следующая попытка
33
+ RetryCount: Кол-во попыток
34
+ RetryNow: Повторить сейчас
35
+ Kill: Убиваем
36
+ LastRetry: Последняя попытка
37
+ OriginallyFailed: Первый провал
38
+ AreYouSure: Вы уверены?
39
+ DeleteAll: Удалить все
40
+ RetryAll: Повторить все
41
+ NoRetriesFound: Нет попыток
42
+ Error: Ошибка
43
+ ErrorClass: Класс ошибки
44
+ ErrorMessage: Сообщение об ошибке
45
+ ErrorBacktrace: Трассировка ошибки
46
+ GoBack: ← Назад
47
+ NoScheduledFound: Нет запланированных задач
48
+ When: Когда
49
+ ScheduledJobs: Запланированные задачи
50
+ idle: отдыхает
51
+ active: активен
52
+ Version: Версия
53
+ Connections: Соединения
54
+ MemoryUsage: Использование памяти
55
+ PeakMemoryUsage: Максимальный расход памяти
56
+ Uptime: Дня(ей) бесперебойной работы
57
+ OneWeek: 1 неделя
58
+ OneMonth: 1 месяц
59
+ ThreeMonths: 3 месяца
60
+ SixMonths: 6 месяцев
61
+ Failures: Провалы
62
+ DeadJobs: Убитые задачи
63
+ NoDeadJobsFound: Нет убитых задач
64
+ Dead: Убито
65
+ Processes: Процессы
66
+ Thread: Поток
67
+ Threads: Потоки
68
+ Jobs: Задачи
69
+ Paused: Приостановлено
70
+ Stop: Остановить
71
+ Quiet: Отдыхать
72
+ StopAll: Остановить все
73
+ QuietAll: Отдыхать всем
74
+ PollingInterval: Интервал опроса
75
+ Plugins: Плагины
@@ -0,0 +1,68 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ sv: # <---- change this to your locale code
3
+ Dashboard: Panel
4
+ Status: Status
5
+ Time: Tid
6
+ Namespace: Namnrymd
7
+ Realtime: Realtid
8
+ History: Historik
9
+ Busy: Upptagen
10
+ Processed: Processerad
11
+ Failed: Misslyckad
12
+ Scheduled: Schemalagd
13
+ Retries: Försök
14
+ Enqueued: Köad
15
+ Worker: Worker
16
+ LivePoll: Live poll
17
+ StopPolling: Stoppa polling
18
+ Queue: Kö
19
+ Class: Klass
20
+ Job: Jobb
21
+ Arguments: Argument
22
+ Extras: Extra
23
+ Started: Startad
24
+ ShowAll: Visa alla
25
+ CurrentMessagesInQueue: Jobb i <span class='title'>%{queue}</span>
26
+ Delete: Ta bort
27
+ AddToQueue: Lägg till i kö
28
+ AreYouSureDeleteJob: Är du säker på att du vill ta bort detta jobb?
29
+ AreYouSureDeleteQueue: Är du säker på att du vill ta bort kön %{queue}?
30
+ Queues: Köer
31
+ Size: Storlek
32
+ Actions: Åtgärder
33
+ NextRetry: Nästa försök
34
+ RetryCount: Antal försök
35
+ RetryNow: Försök nu
36
+ LastRetry: Senaste försök
37
+ OriginallyFailed: Misslyckades ursprungligen
38
+ AreYouSure: Är du säker?
39
+ DeleteAll: Ta bort alla
40
+ RetryAll: Försök alla igen
41
+ NoRetriesFound: Inga försök hittades
42
+ Error: Fel
43
+ ErrorClass: Felklass
44
+ ErrorMessage: Felmeddelande
45
+ ErrorBacktrace: Backtrace för fel
46
+ GoBack: ← Bakåt
47
+ NoScheduledFound: Inga schemalagda jobb hittades
48
+ When: När
49
+ ScheduledJobs: Schemalagda jobb
50
+ idle: avvaktande
51
+ active: aktiv
52
+ Version: Version
53
+ Connections: Anslutningar
54
+ MemoryUsage: Minnesanvändning
55
+ PeakMemoryUsage: Minnesanvändning (peak)
56
+ Uptime: Upptid (dagar)
57
+ OneWeek: 1 vecka
58
+ OneMonth: 1 månad
59
+ ThreeMonths: 3 månader
60
+ SixMonths: 6 månader
61
+ Failures: Failures
62
+ DeadJobs: Döda jobb
63
+ NoDeadJobsFound: Inga döda jobb hittades
64
+ Dead: Död
65
+ Processes: Processer
66
+ Thread: Tråd
67
+ Threads: Trådar
68
+ Jobs: Jobb
@@ -0,0 +1,75 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ ta: # <---- change this to your locale code
3
+ Dashboard: டாஷ்போர்டு
4
+ Status: நிலைமை
5
+ Time: நேரம்
6
+ Namespace: பெயர்வெளி
7
+ Realtime: நேரலை
8
+ History: வரலாறு
9
+ Busy: பணிமிகுதி
10
+ Processed: நிறையுற்றது
11
+ Failed: தோல்வி
12
+ Scheduled: திட்டமிடப்பட்ட
13
+ Retries: மீண்டும் முயற்சிக்க,
14
+ Enqueued: வரிசைப்படுத்தப்பட்டவை
15
+ Worker: பணியாளர்
16
+ LivePoll: நேரடி கணிப்பு
17
+ StopPolling: நிறுத்து வாக்குப்பதிவு
18
+ Queue: வரிசை
19
+ Class: வகுப்பு
20
+ Job: வேலை
21
+ Arguments: வாதங்கள்,
22
+ Extras: உபரி
23
+ Started: தொடங்குதல்
24
+ ShowAll: அனைத்து காட்டு
25
+ CurrentMessagesInQueue: தற்போதைய வேலைகள் <span class='title'>%{queue}</span>
26
+ Delete: நீக்கு
27
+ AddToQueue: வரிசையில் சேர்
28
+ AreYouSureDeleteJob: நீ இந்த வேலையை நீக்க வேண்டும் என்று உறுதியாக இருக்கிறீர்களா?
29
+ AreYouSureDeleteQueue: நீங்கள் %{queue} வரிசையில் நீக்க வேண்டும் என்பதில் உறுதியாக இருக்கிறீர்களா?
30
+ Queues: வரிசை
31
+ Size: அளவு
32
+ Actions: செயல்கள்
33
+ NextRetry: அடுத்த, மீண்டும் முயற்சிக்கவும்
34
+ RetryCount: கணிப்பீடு, மீண்டும் முயற்சிக்கவும்
35
+ RetryNow: இப்போது மீண்டும் முயற்சி செய்க
36
+ Kill: கொல்
37
+ LastRetry: கடைசியாக, மீண்டும் முயற்சிக்கவும்
38
+ OriginallyFailed: முதலில் தோல்வி
39
+ AreYouSure: நீங்கள் உறுதியாக இருக்கிறீர்களா?
40
+ DeleteAll: அனைத்து நீக்கு
41
+ RetryAll: அனைத்து, மீண்டும் முயற்சிக்கவும்
42
+ NoRetriesFound: இல்லை மீண்டும் காணப்படவில்லை
43
+ Error: பிழை
44
+ ErrorClass: பிழை வகுப்பு
45
+ ErrorMessage: பிழை செய்தி
46
+ ErrorBacktrace: பிழை பின்தேடுலை
47
+ GoBack: பின்புறம்
48
+ NoScheduledFound: திட்டமிட்ட வேலைகள் காணப்படவில்லை
49
+ When: எப்பொழுது?
50
+ ScheduledJobs: திட்டமிட்ட வேலைகள்
51
+ idle: முடங்கு நேரம்
52
+ active: செயலில்
53
+ Version: பதிப்பு
54
+ Connections: இணைப்புகள்
55
+ MemoryUsage: நினைவக பயன்பாடு
56
+ PeakMemoryUsage: உச்ச நினைவக பயன்பாடு
57
+ Uptime: இயக்க நேரம் (நாட்கள்)
58
+ OneWeek: 1 வாரம்
59
+ OneMonth: 1 மாதம்
60
+ ThreeMonths: 3 மாதங்கள்
61
+ SixMonths: 6 மாதங்கள்
62
+ Failures: தோல்விகள்
63
+ DeadJobs: டெட் வேலைகள்
64
+ NoDeadJobsFound: இறந்த வேலை எதுவும் இல்லை
65
+ Dead: இறந்துபோன
66
+ Processes: செயல்முறைகள்
67
+ Thread: நூல்
68
+ Threads: நூல்கள்
69
+ Jobs: வேலை வாய்ப்புகள்
70
+ Paused: தற்காலிக பணிநிறுத்தம்
71
+ Stop: நிறுத்து
72
+ Quiet: அமைதியான
73
+ StopAll: நிறுத்து அனைத்து
74
+ QuietAll: அமைதியான அனைத்து
75
+ PollingInterval: வாக்குப்பதிவு இடைவெளி
@@ -0,0 +1,68 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ zh-cn: # <---- change this to your locale code
3
+ Dashboard: 信息板
4
+ Status: 状态
5
+ Time: 时间
6
+ Namespace: 命名空间
7
+ Realtime: 实时
8
+ History: 历史记录
9
+ Busy: 执行中
10
+ Processed: 已处理
11
+ Failed: 已失败
12
+ Scheduled: 已计划
13
+ Retries: 重试
14
+ Enqueued: 已进入队列
15
+ Worker: 工人
16
+ LivePoll: 实时轮询
17
+ StopPolling: 停止轮询
18
+ Queue: 队列
19
+ Class: 类别
20
+ Job: 作业
21
+ Arguments: 参数
22
+ Extras: 额外的
23
+ Started: 已开始
24
+ ShowAll: 显示全部
25
+ CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的作业
26
+ Delete: 删除
27
+ AddToQueue: 添加至队列
28
+ AreYouSureDeleteJob: 你确定要删除这个作业么?
29
+ AreYouSureDeleteQueue: 你确定要删除%{queue}这个队列?
30
+ Queues: 队列
31
+ Size: 容量
32
+ Actions: 动作
33
+ NextRetry: 下次重试
34
+ RetryCount: 重试次數
35
+ RetryNow: 现在重试
36
+ LastRetry: 最后一次重试
37
+ OriginallyFailed: 原本已失败
38
+ AreYouSure: 你确定?
39
+ DeleteAll: 删除全部
40
+ RetryAll: 重试全部
41
+ NoRetriesFound: 沒有发现可重试
42
+ Error: 错误
43
+ ErrorClass: 错误类别
44
+ ErrorMessage: 错误消息
45
+ ErrorBacktrace: 错误的回调追踪
46
+ GoBack: ← 返回
47
+ NoScheduledFound: 沒有发现计划作业
48
+ When: 当
49
+ ScheduledJobs: 计划作业
50
+ idle: 闲置
51
+ active: 活动中
52
+ Version: 版本
53
+ Connections: 连接
54
+ MemoryUsage: 内存占用
55
+ PeakMemoryUsage: 内存占用峰值
56
+ Uptime: 上线时间 (天数)
57
+ OneWeek: 一周
58
+ OneMonth: 一个月
59
+ ThreeMonths: 三个月
60
+ SixMonths: 六个月
61
+ Failures: 失败
62
+ DeadJobs: 已停滞作业
63
+ NoDeadJobsFound: 沒有发现任何已停滞的作业
64
+ Dead: 已停滞
65
+ Processes: 处理中
66
+ Thread: 线程
67
+ Threads: 线程
68
+ Jobs: 作业
@@ -0,0 +1,68 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ zh-tw: # <---- change this to your locale code
3
+ Dashboard: 資訊主頁
4
+ Status: 狀態
5
+ Time: 時間
6
+ Namespace: 命名空間
7
+ Realtime: 即時
8
+ History: 歷史資料
9
+ Busy: 忙碌
10
+ Processed: 已處理
11
+ Failed: 已失敗
12
+ Scheduled: 已排程
13
+ Retries: 重試
14
+ Enqueued: 已佇列
15
+ Worker: 工人
16
+ LivePoll: 即時輪詢
17
+ StopPolling: 停止輪詢
18
+ Queue: 佇列
19
+ Class: 類別
20
+ Job: 工作
21
+ Arguments: 參數
22
+ Extras: 額外的
23
+ Started: 已開始
24
+ ShowAll: 顯示全部
25
+ CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的工作
26
+ Delete: 刪除
27
+ AddToQueue: 增加至佇列
28
+ AreYouSureDeleteJob: 你確定要刪除這個工作嗎?
29
+ AreYouSureDeleteQueue: 你確定要刪除%{queue}這個佇列?
30
+ Queues: 佇列
31
+ Size: 容量
32
+ Actions: 動作
33
+ NextRetry: 下次重試
34
+ RetryCount: 重試次數
35
+ RetryNow: 馬上重試
36
+ LastRetry: 最後一次重試
37
+ OriginallyFailed: 原本已失敗
38
+ AreYouSure: 你確定?
39
+ DeleteAll: 刪除全部
40
+ RetryAll: 重試全部
41
+ NoRetriesFound: 沒有發現可重試
42
+ Error: 錯誤
43
+ ErrorClass: 錯誤類別
44
+ ErrorMessage: 錯誤訊息
45
+ ErrorBacktrace: 錯誤的回調追踨
46
+ GoBack: ← 返回
47
+ NoScheduledFound: 沒有發現已排程的工作
48
+ When: 當
49
+ ScheduledJobs: 已排程的工作
50
+ idle: 閒置
51
+ active: 活動中
52
+ Version: 版本
53
+ Connections: 連線
54
+ MemoryUsage: 記憶體使用量
55
+ PeakMemoryUsage: 尖峰記憶體使用量
56
+ Uptime: 上線時間 (天數)
57
+ OneWeek: 一週
58
+ OneMonth: 一個月
59
+ ThreeMonths: 三個月
60
+ SixMonths: 六個月
61
+ Failures: 失敗
62
+ DeadJobs: 停滯工作
63
+ NoDeadJobsFound: 沒有發現任何停滯的工作
64
+ Dead: 停滯
65
+ Processes: 處理中
66
+ Thread: 執行緒
67
+ Threads: 執行緒
68
+ Jobs: 工作
@@ -0,0 +1,22 @@
1
+ <div class="navbar navbar-fixed-bottom navbar-inverse">
2
+ <div class="navbar-inner">
3
+ <div class="container text-center">
4
+ <ul class="nav">
5
+ <li>
6
+ <p class="navbar-text" style="color:white;"><%= product_version %></p>
7
+ </li>
8
+ <li>
9
+ <p class="navbar-text redis-url">Redis: <%= redis_connection %></p>
10
+ </li>
11
+ <li>
12
+ <p class="navbar-text"><%= t('Time') %>: <%= Time.now.utc.strftime('%H:%M:%S UTC') %></p>
13
+ </li>
14
+ <% if namespace %>
15
+ <li>
16
+ <p class="navbar-text redis-namespace"><%= t('Namespace') %>: <%= namespace %></p>
17
+ </li>
18
+ <% end %>
19
+ </ul>
20
+ </div>
21
+ </div>
22
+ </div>
@@ -0,0 +1,84 @@
1
+ <header>
2
+ <h3><%= t('Job') %></h3>
3
+ </header>
4
+
5
+ <div class="table_container">
6
+ <table class="table table-bordered table-striped">
7
+ <tbody>
8
+ <tr>
9
+ <th><%= t('Queue') %></th>
10
+ <td>
11
+ <a href="<%= root_path %>queues/<%= job.queue_id %>"><%= job.queue_id %></a>
12
+ </td>
13
+ </tr>
14
+ <tr>
15
+ <th><%= t('Job') %></th>
16
+ <td>
17
+ <code><%= job.display_class %></code>
18
+ </td>
19
+ </tr>
20
+ <tr>
21
+ <th><%= t('Arguments') %></th>
22
+ <td>
23
+ <code class="code-wrap">
24
+ <!-- We don't want to truncate any job arguments when viewing a single job's status page -->
25
+ <div class="args-extended"><%= display_args(job.display_args, nil) %></div>
26
+ </code>
27
+ </td>
28
+ </tr>
29
+ <tr>
30
+ <th>JID</th>
31
+ <td>
32
+ <code><%= job.jid %></code>
33
+ </td>
34
+ </tr>
35
+ <tr>
36
+ <th><%= t('Enqueued') %></th>
37
+ <td><%= (enqueued_at = job.enqueued_at) ? relative_time(enqueued_at) : t('NotYetEnqueued') %></td>
38
+ </tr>
39
+ <% unless retry_extra_items(job).empty? %>
40
+ <tr>
41
+ <th><%= t('Extras') %></th>
42
+ <td>
43
+ <code>
44
+ <%= retry_extra_items(job).inspect %>
45
+ </code>
46
+ </td>
47
+ </tr>
48
+ <% end %>
49
+ <% if type == :retry %>
50
+ <% if job['retry_count'] && job['retry_count'] > 0 %>
51
+ <tr>
52
+ <th><%= t('RetryCount') %></th>
53
+ <td><%= job['retry_count'] %></td>
54
+ </tr>
55
+ <tr>
56
+ <th><%= t('LastRetry') %></th>
57
+ <td><%= relative_time(Time.at(job['retried_at'])) %></td>
58
+ </tr>
59
+ <% else %>
60
+ <tr>
61
+ <th><%= t('OriginallyFailed') %></th>
62
+ <td><%= relative_time(Time.at(job['failed_at'])) %></td>
63
+ </tr>
64
+ <% end %>
65
+ <tr>
66
+ <th><%= t('NextRetry') %></th>
67
+ <td><%= relative_time(job.at) %></td>
68
+ </tr>
69
+ <% end %>
70
+ <% if type == :scheduled %>
71
+ <tr>
72
+ <th><%= t('Scheduled') %></th>
73
+ <td><%= relative_time(job.at) %></td>
74
+ </tr>
75
+ <% end %>
76
+ <% if type == :dead %>
77
+ <tr>
78
+ <th><%= t('LastRetry') %></th>
79
+ <td><%= relative_time(job.at) %></td>
80
+ </tr>
81
+ <% end %>
82
+ </tbody>
83
+ </table>
84
+ </div>
@@ -0,0 +1,66 @@
1
+ <div class="navbar navbar-default navbar-fixed-top">
2
+ <div class="container-fluid">
3
+ <div class="navbar-header" data-navbar="static">
4
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </button>
9
+ <div class="navbar-toggle collapsed navbar-livereload">
10
+ <%= erb :_poll_link %>
11
+ <% if Roundhouse::Web.app_url %>
12
+ <a class="btn btn-inverse" href="<%= Roundhouse::Web.app_url %>">Back to App</a>
13
+ <% end %>
14
+ </div>
15
+ <a class="navbar-brand" href="<%= root_path %>">
16
+ <%= Roundhouse::NAME %>
17
+ <%= erb :_status %>
18
+ </a>
19
+ </div>
20
+
21
+ <div class="collapse navbar-collapse" id="navbar-menu">
22
+ <ul class="nav navbar-nav" data-navbar="static">
23
+ <% Roundhouse::Web.default_tabs.each do |title, url| %>
24
+ <% if url == '' %>
25
+ <li class="<%= current_path == url ? 'active' : '' %>">
26
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
27
+ </li>
28
+ <% else %>
29
+ <li class="<%= current_path.start_with?(url) ? 'active' : '' %>">
30
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
31
+ </li>
32
+ <% end %>
33
+ <% end %>
34
+
35
+ <li class="dropdown" data-navbar="dropdown">
36
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
37
+ <%= t('Plugins') %> <span class="caret"></span>
38
+ </a>
39
+ <ul class="dropdown-menu" role="menu">
40
+ <% Roundhouse::Web.custom_tabs.each do |title, url| %>
41
+ <li>
42
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
43
+ </li>
44
+ <% end %>
45
+ </ul>
46
+ </li>
47
+
48
+ <% Roundhouse::Web.custom_tabs.each do |title, url| %>
49
+ <li class="<%= current_path.start_with?(url) ? 'active' : '' %>" data-navbar="custom-tab">
50
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
51
+ </li>
52
+ <% end %>
53
+ </ul>
54
+ <ul class="nav navbar-nav navbar-right navbar-livereload" data-navbar="static">
55
+ <li>
56
+ <div class="poll-wrapper pull-right">
57
+ <%= erb :_poll_link %>
58
+ <% if Roundhouse::Web.app_url %>
59
+ <a class="btn btn-inverse" href="<%= Roundhouse::Web.app_url %>">Back to App</a>
60
+ <% end %>
61
+ </div>
62
+ </li>
63
+ </ul>
64
+ </div>
65
+ </div>
66
+ </div>
@@ -0,0 +1,23 @@
1
+ <% if @total_size > @count %>
2
+ <ul class="pagination pull-right">
3
+ <li class="<%= 'disabled' if @current_page == 1 %>">
4
+ <a href="<%= url %>?page=1">&laquo;</a>
5
+ </li>
6
+ <% if @current_page > 1 %>
7
+ <li>
8
+ <a href="<%= url %>?<%= qparams(page: @current_page - 1) %>"><%= @current_page - 1 %></a>
9
+ </li>
10
+ <% end %>
11
+ <li class="disabled">
12
+ <a href="<%= url %>?<%= qparams(page: @current_page) %>"><%= @current_page %></a>
13
+ </li>
14
+ <% if @total_size > @current_page * @count %>
15
+ <li>
16
+ <a href="<%= url %>?<%= qparams(page: @current_page + 1) %>"><%= @current_page + 1 %></a>
17
+ </li>
18
+ <% end %>
19
+ <li class="<%= 'disabled' if @total_size <= @current_page * @count %>">
20
+ <a href="<%= url %>?<%= qparams(page: (@total_size.to_f / @count).ceil) %>">&raquo;</a>
21
+ </li>
22
+ </ul>
23
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% if current_path != '' && params[:poll] %>
2
+ <script>
3
+ updatePage('<%= root_path + current_path %>')
4
+ </script>
5
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% if current_path != '' %>
2
+ <% if params[:poll] %>
3
+ <a id="live-poll" class="btn btn-primary active" href="<%= root_path + current_path %>"><%= t('StopPolling') %></a>
4
+ <% else %>
5
+ <a id="live-poll" class="btn btn-primary" href="<%= root_path + current_path %>?<%= qparams(poll: true) %>"><%= t('LivePoll') %></a>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,4 @@
1
+ <span class="status">
2
+ <i class="status-sprite status-<%= current_status %>"></i>
3
+ <%= t(current_status) %>
4
+ </span>