job_boss 0.5.0 → 0.5.5
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.
- data/README.markdown +39 -7
- data/bin/job_boss +4 -2
- data/doc/ActiveSupport/TestCase.html +106 -87
- data/doc/ActiveSupport.html +6 -0
- data/doc/CreateJobs.html +17 -5
- data/doc/DaemonTest.html +6 -0
- data/doc/Gemfile.html +128 -0
- data/doc/JobBoss/Boss.html +193 -144
- data/doc/JobBoss/Config.html +8 -2
- data/doc/JobBoss/Job.html +224 -166
- data/doc/JobBoss/Queuer.html +25 -11
- data/doc/JobBoss.html +9 -0
- data/doc/MIT-LICENSE.html +137 -0
- data/doc/MathJobs.html +6 -0
- data/doc/Penguin.html +223 -0
- data/doc/Rakefile.html +6 -0
- data/doc/SleepJobs.html +6 -0
- data/doc/StringJobs.html +7 -1
- data/doc/bin/job_boss.html +3 -1
- data/doc/created.rid +17 -11
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +12 -0
- data/doc/init_rb.html +54 -0
- data/doc/js/darkfish.js +116 -0
- data/doc/js/jquery.js +32 -0
- data/doc/js/quicksearch.js +114 -0
- data/doc/js/thickbox-compressed.js +10 -0
- data/doc/lib/job_boss/boss_rb.html +1 -1
- data/doc/lib/job_boss/config_rb.html +1 -1
- data/doc/lib/job_boss/job_rb.html +1 -1
- data/doc/lib/job_boss/queuer_rb.html +1 -1
- data/doc/lib/job_boss_rb.html +56 -0
- data/doc/lib/migrate_rb.html +1 -1
- data/doc/test/app_root/app/jobs/string_jobs_rb.html +1 -1
- data/doc/test/app_root/app/models/penguin_rb.html +52 -0
- data/doc/test/app_root/config/environment_rb.html +56 -0
- data/doc/test/test_helper_rb.html +3 -1
- data/doc/test/unit/job_test_rb.html +2 -4
- data/job_boss.gemspec +1 -1
- data/lib/job_boss/config.rb +2 -2
- data/lib/job_boss/job.rb +22 -2
- data/lib/job_boss/queuer.rb +10 -2
- data/lib/migrate.rb +6 -0
- data/test/app_root/app/models/penguin.rb +9 -0
- data/test/app_root/config/database.yml +3 -3
- data/test/app_root/config/environment.rb +3 -0
- data/test/test_helper.rb +6 -4
- data/test/unit/job_test.rb +33 -17
- metadata +38 -9
data/doc/JobBoss/Boss.html
CHANGED
@@ -77,6 +77,8 @@
|
|
77
77
|
|
78
78
|
<li><a href="#method-c-queue">::queue</a></li>
|
79
79
|
|
80
|
+
<li><a href="#method-c-queue_path">::queue_path</a></li>
|
81
|
+
|
80
82
|
<li><a href="#method-c-resolve_path">::resolve_path</a></li>
|
81
83
|
|
82
84
|
<li><a href="#method-i-available_employees">#available_employees</a></li>
|
@@ -112,6 +114,10 @@
|
|
112
114
|
<h3 class="section-header">Files</h3>
|
113
115
|
<ul>
|
114
116
|
|
117
|
+
<li class="file"><a href="../Gemfile.html">Gemfile</a></li>
|
118
|
+
|
119
|
+
<li class="file"><a href="../MIT-LICENSE.html">MIT-LICENSE</a></li>
|
120
|
+
|
115
121
|
<li class="file"><a href="../Rakefile.html">Rakefile</a></li>
|
116
122
|
|
117
123
|
</ul>
|
@@ -153,6 +159,8 @@
|
|
153
159
|
|
154
160
|
<li><a href="../MathJobs.html">MathJobs</a></li>
|
155
161
|
|
162
|
+
<li><a href="../Penguin.html">Penguin</a></li>
|
163
|
+
|
156
164
|
<li><a href="../SleepJobs.html">SleepJobs</a></li>
|
157
165
|
|
158
166
|
<li><a href="../StringJobs.html">StringJobs</a></li>
|
@@ -243,13 +251,13 @@ Used to set <a href="Boss.html">Boss</a> configuration Usage:
|
|
243
251
|
<div class="method-source-code"
|
244
252
|
id="logger-source">
|
245
253
|
<pre>
|
246
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
254
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 32</span>
|
255
|
+
32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logger</span>
|
256
|
+
33: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">log_path</span> = <span class="ruby-identifier">resolve_path</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">log_path</span>)
|
257
|
+
34:
|
258
|
+
35: <span class="ruby-identifier">require</span> <span class="ruby-value str">'logger'</span>
|
259
|
+
36: <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">log_path</span>)
|
260
|
+
37: <span class="ruby-keyword kw">end</span></pre>
|
253
261
|
</div>
|
254
262
|
|
255
263
|
</div>
|
@@ -280,16 +288,16 @@ Used to set <a href="Boss.html">Boss</a> configuration Usage:
|
|
280
288
|
<div class="method-source-code"
|
281
289
|
id="new-source">
|
282
290
|
<pre>
|
283
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
291
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 50</span>
|
292
|
+
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
|
293
|
+
51: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">application_root</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:working_dir</span>]
|
294
|
+
52: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">sleep_interval</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:sleep_interval</span>]
|
295
|
+
53: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">employee_limit</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:employee_limit</span>]
|
296
|
+
54: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">database_yaml_path</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:database_yaml_path</span>]
|
297
|
+
55: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">jobs_path</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:jobs_path</span>]
|
298
|
+
56:
|
299
|
+
57: <span class="ruby-ivar">@running_jobs</span> = []
|
300
|
+
58: <span class="ruby-keyword kw">end</span></pre>
|
293
301
|
</div>
|
294
302
|
|
295
303
|
</div>
|
@@ -336,6 +344,46 @@ Used to queue jobs Usage:
|
|
336
344
|
|
337
345
|
|
338
346
|
|
347
|
+
</div>
|
348
|
+
|
349
|
+
|
350
|
+
<div id="queue-path-method" class="method-detail ">
|
351
|
+
<a name="method-c-queue_path"></a>
|
352
|
+
|
353
|
+
<div class="method-heading">
|
354
|
+
|
355
|
+
<span class="method-name">queue_path</span><span
|
356
|
+
class="method-args">(path, *args)</span>
|
357
|
+
<span class="method-click-advice">click to toggle source</span>
|
358
|
+
|
359
|
+
</div>
|
360
|
+
|
361
|
+
<div class="method-description">
|
362
|
+
|
363
|
+
<p>
|
364
|
+
Used to queue jobs Usage:
|
365
|
+
</p>
|
366
|
+
<pre>
|
367
|
+
Boss.queue_path('math#in_prime?', 42)</pre>
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
<div class="method-source-code"
|
372
|
+
id="queue-path-source">
|
373
|
+
<pre>
|
374
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 26</span>
|
375
|
+
26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">queue_path</span>(<span class="ruby-identifier">path</span>, *<span class="ruby-identifier">args</span>)
|
376
|
+
27: <span class="ruby-identifier">controller</span>, <span class="ruby-identifier">action</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'#'</span>)
|
377
|
+
28:
|
378
|
+
29: <span class="ruby-identifier">queue</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">controller</span>).<span class="ruby-identifier">send</span>(<span class="ruby-identifier">action</span>, *<span class="ruby-identifier">args</span>)
|
379
|
+
30: <span class="ruby-keyword kw">end</span></pre>
|
380
|
+
</div>
|
381
|
+
|
382
|
+
</div>
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
339
387
|
</div>
|
340
388
|
|
341
389
|
|
@@ -362,14 +410,14 @@ application_root
|
|
362
410
|
<div class="method-source-code"
|
363
411
|
id="resolve-path-source">
|
364
412
|
<pre>
|
365
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
413
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 41</span>
|
414
|
+
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolve_path</span>(<span class="ruby-identifier">path</span>)
|
415
|
+
42: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value">//</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">match</span>(<span class="ruby-node">/^#{@@config.application_root}/</span>)
|
416
|
+
43: <span class="ruby-identifier">path</span>
|
417
|
+
44: <span class="ruby-keyword kw">else</span>
|
418
|
+
45: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">application_root</span>, <span class="ruby-identifier">path</span>)
|
419
|
+
46: <span class="ruby-keyword kw">end</span>
|
420
|
+
47: <span class="ruby-keyword kw">end</span></pre>
|
373
421
|
</div>
|
374
422
|
|
375
423
|
</div>
|
@@ -408,50 +456,50 @@ Start the boss
|
|
408
456
|
<div class="method-source-code"
|
409
457
|
id="start-source">
|
410
458
|
<pre>
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
459
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 61</span>
|
460
|
+
61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start</span>
|
461
|
+
62: <span class="ruby-identifier">require</span> <span class="ruby-value str">'active_record'</span>
|
462
|
+
63: <span class="ruby-identifier">require</span> <span class="ruby-value str">'yaml'</span>
|
463
|
+
64:
|
464
|
+
65: <span class="ruby-identifier">establish_active_record_connection</span>
|
465
|
+
66:
|
466
|
+
67: <span class="ruby-identifier">require_job_classes</span>
|
467
|
+
68:
|
468
|
+
69: <span class="ruby-identifier">require</span> <span class="ruby-value str">'job_boss/job'</span>
|
469
|
+
70:
|
470
|
+
71: <span class="ruby-identifier">migrate</span>
|
471
|
+
72:
|
472
|
+
73: <span class="ruby-constant">Signal</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">"HUP"</span>) <span class="ruby-keyword kw">do</span>
|
473
|
+
74: <span class="ruby-identifier">stop</span>
|
474
|
+
75: <span class="ruby-keyword kw">end</span>
|
475
|
+
76:
|
476
|
+
77: <span class="ruby-identifier">at_exit</span> <span class="ruby-keyword kw">do</span>
|
477
|
+
78: <span class="ruby-identifier">stop</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Process</span>.<span class="ruby-identifier">pid</span> <span class="ruby-operator">==</span> <span class="ruby-constant">BOSS_PID</span>
|
478
|
+
79: <span class="ruby-keyword kw">end</span>
|
479
|
+
80:
|
480
|
+
81: <span class="ruby-constant">Boss</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-value str">"Job Boss started"</span>
|
481
|
+
82:
|
482
|
+
83: <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
|
483
|
+
84: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">children_count</span> = <span class="ruby-identifier">available_employees</span>) <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">pending</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
484
|
+
85: <span class="ruby-identifier">sleep</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">sleep_interval</span>)
|
485
|
+
86: <span class="ruby-keyword kw">next</span>
|
486
|
+
87: <span class="ruby-keyword kw">end</span>
|
487
|
+
88:
|
488
|
+
89: <span class="ruby-comment cmt"># Go through each pending path so that we don't get stuck just processing</span>
|
489
|
+
90: <span class="ruby-comment cmt"># long running jobs which would leave quicker jobs to suffocate</span>
|
490
|
+
91: <span class="ruby-constant">Job</span>.<span class="ruby-identifier">pending_paths</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
|
491
|
+
92: <span class="ruby-identifier">job</span> = <span class="ruby-constant">Job</span>.<span class="ruby-identifier">pending</span>.<span class="ruby-identifier">find_by_path</span>(<span class="ruby-identifier">path</span>)
|
492
|
+
93: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">job</span>.<span class="ruby-identifier">nil?</span>
|
493
|
+
94:
|
494
|
+
95: <span class="ruby-identifier">job</span>.<span class="ruby-identifier">dispatch</span>
|
495
|
+
96: <span class="ruby-ivar">@running_jobs</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">job</span>
|
496
|
+
97:
|
497
|
+
98: <span class="ruby-identifier">children_count</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
|
498
|
+
99: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">children_count</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
499
|
+
100: <span class="ruby-keyword kw">end</span>
|
500
|
+
101:
|
501
|
+
102: <span class="ruby-keyword kw">end</span>
|
502
|
+
103: <span class="ruby-keyword kw">end</span></pre>
|
455
503
|
</div>
|
456
504
|
|
457
505
|
</div>
|
@@ -482,14 +530,14 @@ Start the boss
|
|
482
530
|
<div class="method-source-code"
|
483
531
|
id="stop-source">
|
484
532
|
<pre>
|
485
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
533
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 105</span>
|
534
|
+
105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stop</span>
|
535
|
+
106: <span class="ruby-constant">Boss</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-node">"Stopping #{@running_jobs.size} running employees..."</span>
|
536
|
+
107:
|
537
|
+
108: <span class="ruby-identifier">shutdown_running_jobs</span>
|
538
|
+
109:
|
539
|
+
110: <span class="ruby-constant">Boss</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-value str">"Job Boss stopped"</span>
|
540
|
+
111: <span class="ruby-keyword kw">end</span></pre>
|
493
541
|
</div>
|
494
542
|
|
495
543
|
</div>
|
@@ -528,12 +576,12 @@ Total number of employees which can be run
|
|
528
576
|
<div class="method-source-code"
|
529
577
|
id="available-employees-source">
|
530
578
|
<pre>
|
531
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
579
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 136</span>
|
580
|
+
136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">available_employees</span>
|
581
|
+
137: <span class="ruby-identifier">cleanup_running_jobs</span>
|
582
|
+
138:
|
583
|
+
139: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">employee_limit</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@running_jobs</span>.<span class="ruby-identifier">size</span>
|
584
|
+
140: <span class="ruby-keyword kw">end</span></pre>
|
537
585
|
</div>
|
538
586
|
|
539
587
|
</div>
|
@@ -567,25 +615,25 @@ which have been cancelled, or which went MIA
|
|
567
615
|
<div class="method-source-code"
|
568
616
|
id="cleanup-running-jobs-source">
|
569
617
|
<pre>
|
570
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
618
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 116</span>
|
619
|
+
116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cleanup_running_jobs</span>
|
620
|
+
117: <span class="ruby-constant">Job</span>.<span class="ruby-identifier">uncached</span> <span class="ruby-keyword kw">do</span>
|
621
|
+
118: <span class="ruby-ivar">@running_jobs</span> = <span class="ruby-constant">Job</span>.<span class="ruby-identifier">running</span>.<span class="ruby-identifier">where</span>(<span class="ruby-value str">'id in (?)'</span>, <span class="ruby-ivar">@running_jobs</span>)
|
622
|
+
119:
|
623
|
+
120: <span class="ruby-identifier">cancelled_jobs</span> = <span class="ruby-ivar">@running_jobs</span>.<span class="ruby-identifier">select</span>(&<span class="ruby-value">:cancelled?</span>)
|
624
|
+
121: <span class="ruby-identifier">cancelled_jobs</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">job</span><span class="ruby-operator">|</span> <span class="ruby-identifier">kill_job</span>(<span class="ruby-identifier">job</span>) }
|
625
|
+
122: <span class="ruby-ivar">@running_jobs</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">cancelled_jobs</span>
|
626
|
+
123:
|
627
|
+
124: <span class="ruby-comment cmt"># Clean out any jobs whos processes have stopped running for some reason</span>
|
628
|
+
125: <span class="ruby-ivar">@running_jobs</span> = <span class="ruby-ivar">@running_jobs</span>.<span class="ruby-identifier">select</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span><span class="ruby-operator">|</span>
|
629
|
+
126: <span class="ruby-keyword kw">begin</span>
|
630
|
+
127: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">kill</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">job</span>.<span class="ruby-identifier">employee_pid</span>.<span class="ruby-identifier">to_i</span>)
|
631
|
+
128: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ESRCH</span>
|
632
|
+
129: <span class="ruby-keyword kw">nil</span>
|
633
|
+
130: <span class="ruby-keyword kw">end</span>
|
634
|
+
131: <span class="ruby-keyword kw">end</span>
|
635
|
+
132: <span class="ruby-keyword kw">end</span>
|
636
|
+
133: <span class="ruby-keyword kw">end</span></pre>
|
589
637
|
</div>
|
590
638
|
|
591
639
|
</div>
|
@@ -616,16 +664,17 @@ which have been cancelled, or which went MIA
|
|
616
664
|
<div class="method-source-code"
|
617
665
|
id="establish-active-record-connection-source">
|
618
666
|
<pre>
|
619
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
667
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 142</span>
|
668
|
+
142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">establish_active_record_connection</span>
|
669
|
+
143: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">database_yaml_path</span> = <span class="ruby-constant">Boss</span>.<span class="ruby-identifier">resolve_path</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">database_yaml_path</span>)
|
670
|
+
144:
|
671
|
+
145: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Database YAML file missing (#{@@config.database_yaml_path})"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">database_yaml_path</span>)
|
672
|
+
146:
|
673
|
+
147: <span class="ruby-identifier">config</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">database_yaml_path</span>))
|
674
|
+
148:
|
675
|
+
149: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">remove_connection</span>
|
676
|
+
150: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">config</span>[<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">environment</span>])
|
677
|
+
151: <span class="ruby-keyword kw">end</span></pre>
|
629
678
|
</div>
|
630
679
|
|
631
680
|
</div>
|
@@ -656,14 +705,14 @@ which have been cancelled, or which went MIA
|
|
656
705
|
<div class="method-source-code"
|
657
706
|
id="kill-job-source">
|
658
707
|
<pre>
|
659
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
708
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 168</span>
|
709
|
+
168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">kill_job</span>(<span class="ruby-identifier">job</span>)
|
710
|
+
169: <span class="ruby-keyword kw">begin</span>
|
711
|
+
170: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">kill</span>(<span class="ruby-value str">"TERM"</span>, <span class="ruby-identifier">job</span>.<span class="ruby-identifier">employee_pid</span>.<span class="ruby-identifier">to_i</span>)
|
712
|
+
171: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ESRCH</span>
|
713
|
+
172: <span class="ruby-keyword kw">nil</span>
|
714
|
+
173: <span class="ruby-keyword kw">end</span>
|
715
|
+
174: <span class="ruby-keyword kw">end</span></pre>
|
667
716
|
</div>
|
668
717
|
|
669
718
|
</div>
|
@@ -694,13 +743,13 @@ which have been cancelled, or which went MIA
|
|
694
743
|
<div class="method-source-code"
|
695
744
|
id="migrate-source">
|
696
745
|
<pre>
|
697
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
746
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 161</span>
|
747
|
+
161: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">migrate</span>
|
748
|
+
162: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">table_exists?</span>
|
749
|
+
163: <span class="ruby-identifier">require</span> <span class="ruby-value str">'migrate'</span>
|
750
|
+
164: <span class="ruby-constant">CreateJobs</span>.<span class="ruby-identifier">up</span>
|
751
|
+
165: <span class="ruby-keyword kw">end</span>
|
752
|
+
166: <span class="ruby-keyword kw">end</span></pre>
|
704
753
|
</div>
|
705
754
|
|
706
755
|
</div>
|
@@ -731,14 +780,14 @@ which have been cancelled, or which went MIA
|
|
731
780
|
<div class="method-source-code"
|
732
781
|
id="require-job-classes-source">
|
733
782
|
<pre>
|
734
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
783
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 153</span>
|
784
|
+
153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">require_job_classes</span>
|
785
|
+
154: <span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">jobs_path</span> = <span class="ruby-constant">Boss</span>.<span class="ruby-identifier">resolve_path</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">jobs_path</span>)
|
786
|
+
155:
|
787
|
+
156: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Jobs path missing (#{@@config.jobs_path})"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">jobs_path</span>)
|
788
|
+
157:
|
789
|
+
158: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">@@config</span>.<span class="ruby-identifier">jobs_path</span>, <span class="ruby-value str">'*.rb'</span>)).<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">job_class</span><span class="ruby-operator">|</span> <span class="ruby-identifier">require</span> <span class="ruby-identifier">job_class</span> }
|
790
|
+
159: <span class="ruby-keyword kw">end</span></pre>
|
742
791
|
</div>
|
743
792
|
|
744
793
|
</div>
|
@@ -769,15 +818,15 @@ which have been cancelled, or which went MIA
|
|
769
818
|
<div class="method-source-code"
|
770
819
|
id="shutdown-running-jobs-source">
|
771
820
|
<pre>
|
772
|
-
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
821
|
+
<span class="ruby-comment cmt"># File lib/job_boss/boss.rb, line 176</span>
|
822
|
+
176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shutdown_running_jobs</span>
|
823
|
+
177: <span class="ruby-identifier">cleanup_running_jobs</span>
|
824
|
+
178:
|
825
|
+
179: <span class="ruby-ivar">@running_jobs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span><span class="ruby-operator">|</span>
|
826
|
+
180: <span class="ruby-identifier">kill_job</span>(<span class="ruby-identifier">job</span>)
|
827
|
+
181: <span class="ruby-identifier">job</span>.<span class="ruby-identifier">mark_for_redo</span>
|
828
|
+
182: <span class="ruby-keyword kw">end</span>
|
829
|
+
183: <span class="ruby-keyword kw">end</span></pre>
|
781
830
|
</div>
|
782
831
|
|
783
832
|
</div>
|
data/doc/JobBoss/Config.html
CHANGED
@@ -86,6 +86,10 @@
|
|
86
86
|
<h3 class="section-header">Files</h3>
|
87
87
|
<ul>
|
88
88
|
|
89
|
+
<li class="file"><a href="../Gemfile.html">Gemfile</a></li>
|
90
|
+
|
91
|
+
<li class="file"><a href="../MIT-LICENSE.html">MIT-LICENSE</a></li>
|
92
|
+
|
89
93
|
<li class="file"><a href="../Rakefile.html">Rakefile</a></li>
|
90
94
|
|
91
95
|
</ul>
|
@@ -127,6 +131,8 @@
|
|
127
131
|
|
128
132
|
<li><a href="../MathJobs.html">MathJobs</a></li>
|
129
133
|
|
134
|
+
<li><a href="../Penguin.html">Penguin</a></li>
|
135
|
+
|
130
136
|
<li><a href="../SleepJobs.html">SleepJobs</a></li>
|
131
137
|
|
132
138
|
<li><a href="../StringJobs.html">StringJobs</a></li>
|
@@ -305,7 +311,7 @@
|
|
305
311
|
<pre>
|
306
312
|
<span class="ruby-comment cmt"># File lib/job_boss/config.rb, line 5</span>
|
307
313
|
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_args</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">options</span> = {})
|
308
|
-
6: <span class="ruby-ivar">@application_root</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:working_dir</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
|
314
|
+
6: <span class="ruby-ivar">@application_root</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:working_dir</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>)
|
309
315
|
7: <span class="ruby-ivar">@database_yaml_path</span> = <span class="ruby-value str">'config/database.yml'</span>
|
310
316
|
8: <span class="ruby-ivar">@log_path</span> = <span class="ruby-value str">'log/job_boss.log'</span>
|
311
317
|
9: <span class="ruby-ivar">@jobs_path</span> = <span class="ruby-value str">'app/jobs'</span>
|
@@ -319,7 +325,7 @@
|
|
319
325
|
17: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-value str">"Usage: job_boss [start|stop|restart|run|zap] [-- <options>]"</span>
|
320
326
|
18:
|
321
327
|
19: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">"-r"</span>, <span class="ruby-value str">"--application-root PATH"</span>, <span class="ruby-value str">"Path for the application root upon which other paths depend (defaults to .)"</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
|
322
|
-
20: <span class="ruby-ivar">@application_root</span> = <span class="ruby-identifier">path</span>
|
328
|
+
20: <span class="ruby-ivar">@application_root</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">path</span>)
|
323
329
|
21: <span class="ruby-keyword kw">end</span>
|
324
330
|
22:
|
325
331
|
23: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">"-d"</span>, <span class="ruby-value str">"--database-yaml PATH"</span>, <span class="ruby-node">"Path for database YAML (defaults to <application-root>/#{@database_yaml_path})"</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
|