roundhouse-x 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>