Last active
August 29, 2015 14:07
-
-
Save minimum2scp/d0ee3c1bee7192f34206 to your computer and use it in GitHub Desktop.
multitask を使った Rakefile のテスト (see also: http://minimum2scp.org/graphviz/dot/b1b037f56548fb6f57e6cbb09d963ca761e4830a.svg.html)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| mkdir -p flags | |
| I, [2014-10-16T04:42:48.312609 #10793] INFO -- : [#<Thread:0x00000002222bd8>] >>> starting task01 | |
| I, [2014-10-16T04:42:48.313101 #10793] INFO -- : [#<Thread:0x000000022222f0>] >>> starting task02 | |
| I, [2014-10-16T04:42:48.314543 #10793] INFO -- : [#<Thread:0x000000022189d0>] >>> starting task03 | |
| I, [2014-10-16T04:42:48.315005 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task04 | |
| I, [2014-10-16T04:42:48.316725 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 1 tasks: task01 | |
| I, [2014-10-16T04:42:48.317551 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task01 task02 task03 | |
| I, [2014-10-16T04:42:48.317785 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 3 tasks: task01 task02 task03 | |
| I, [2014-10-16T04:42:48.319584 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task01 task02 task03 task04 | |
| I, [2014-10-16T04:42:53.322660 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task01 task02 task03 task04 | |
| I, [2014-10-16T04:42:53.322894 #10793] INFO -- : [#<Thread:0x000000022189d0>] <<< finished task03 | |
| I, [2014-10-16T04:42:55.321598 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task01 task02 task04 | |
| I, [2014-10-16T04:42:55.321778 #10793] INFO -- : [#<Thread:0x000000022222f0>] <<< finished task02 | |
| I, [2014-10-16T04:42:55.322305 #10793] INFO -- : [#<Thread:0x00000002215bb8>] >>> starting task06 | |
| I, [2014-10-16T04:42:55.323032 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 3 tasks: task01 task04 task06 | |
| I, [2014-10-16T04:42:55.323842 #10793] INFO -- : [#<Thread:0x00000002215bb8>] task06 reads flags/task02.done | |
| I, [2014-10-16T04:42:58.320655 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 3 tasks: task01 task04 task06 | |
| I, [2014-10-16T04:42:58.321005 #10793] INFO -- : [#<Thread:0x00000002222bd8>] <<< finished task01 | |
| I, [2014-10-16T04:42:58.321806 #10793] INFO -- : [#<Thread:0x00000002216f68>] >>> starting task05 | |
| I, [2014-10-16T04:42:58.322990 #10793] INFO -- : [#<Thread:0x00000002214538>] >>> starting task07 | |
| I, [2014-10-16T04:42:58.323565 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 3 tasks: task04 task05 task06 | |
| I, [2014-10-16T04:42:58.324508 #10793] INFO -- : [#<Thread:0x00000002214538>] running 4 tasks: task04 task05 task06 task07 | |
| I, [2014-10-16T04:42:58.324933 #10793] INFO -- : [#<Thread:0x00000002216f68>] task05 reads flags/task01.done | |
| I, [2014-10-16T04:42:58.327588 #10793] INFO -- : [#<Thread:0x00000002214538>] task07 reads flags/task01.done | |
| I, [2014-10-16T04:42:58.327840 #10793] INFO -- : [#<Thread:0x00000002214538>] task07 reads flags/task02.done | |
| I, [2014-10-16T04:42:59.323708 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task04 task05 task06 task07 | |
| I, [2014-10-16T04:42:59.323935 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task04 | |
| I, [2014-10-16T04:42:59.324653 #10793] INFO -- : [#<Thread:0x000000022189d0>] >>> starting task08 | |
| I, [2014-10-16T04:42:59.325423 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task21 | |
| I, [2014-10-16T04:42:59.326356 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task05 task06 task07 task08 | |
| I, [2014-10-16T04:42:59.327441 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 5 tasks: task05 task06 task07 task08 task21 | |
| I, [2014-10-16T04:42:59.330013 #10793] INFO -- : [#<Thread:0x000000022189d0>] task08 reads flags/task03.done | |
| I, [2014-10-16T04:42:59.330220 #10793] INFO -- : [#<Thread:0x000000022189d0>] task08 reads flags/task04.done | |
| I, [2014-10-16T04:43:01.331623 #10793] INFO -- : [#<Thread:0x00000002214538>] running 5 tasks: task05 task06 task07 task08 task21 | |
| I, [2014-10-16T04:43:01.331851 #10793] INFO -- : [#<Thread:0x00000002214538>] <<< finished task07 | |
| I, [2014-10-16T04:43:02.331620 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task05 task06 task08 task21 | |
| I, [2014-10-16T04:43:02.331881 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task21 | |
| I, [2014-10-16T04:43:02.333030 #10793] INFO -- : [#<Thread:0x00000002214538>] >>> starting task22 | |
| I, [2014-10-16T04:43:02.333832 #10793] INFO -- : [#<Thread:0x00000002214538>] running 4 tasks: task05 task06 task08 task22 | |
| I, [2014-10-16T04:43:02.334015 #10793] INFO -- : [#<Thread:0x00000002214538>] task22 reads flags/task21.done | |
| I, [2014-10-16T04:43:03.327978 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task05 task06 task08 task22 | |
| I, [2014-10-16T04:43:03.328217 #10793] INFO -- : [#<Thread:0x00000002215bb8>] <<< finished task06 | |
| I, [2014-10-16T04:43:05.338026 #10793] INFO -- : [#<Thread:0x00000002214538>] running 3 tasks: task05 task08 task22 | |
| I, [2014-10-16T04:43:05.338230 #10793] INFO -- : [#<Thread:0x00000002214538>] <<< finished task22 | |
| I, [2014-10-16T04:43:05.338862 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task23 | |
| I, [2014-10-16T04:43:05.340021 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 3 tasks: task05 task08 task23 | |
| I, [2014-10-16T04:43:05.340171 #10793] INFO -- : [#<Thread:0x00000002217da0>] task23 reads flags/task22.done | |
| I, [2014-10-16T04:43:08.333400 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 3 tasks: task05 task08 task23 | |
| I, [2014-10-16T04:43:08.333487 #10793] INFO -- : [#<Thread:0x000000022189d0>] <<< finished task08 | |
| I, [2014-10-16T04:43:08.333713 #10793] INFO -- : [#<Thread:0x000000022222f0>] >>> starting task09 | |
| I, [2014-10-16T04:43:08.334269 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task05 task09 task23 | |
| I, [2014-10-16T04:43:08.334377 #10793] INFO -- : [#<Thread:0x000000022222f0>] task09 reads flags/task07.done | |
| I, [2014-10-16T04:43:08.334606 #10793] INFO -- : [#<Thread:0x000000022189d0>] >>> starting task31 | |
| I, [2014-10-16T04:43:08.334779 #10793] INFO -- : [#<Thread:0x000000022222f0>] task09 reads flags/task08.done | |
| I, [2014-10-16T04:43:08.335150 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task05 task09 task23 task31 | |
| I, [2014-10-16T04:43:08.343438 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task05 task09 task23 task31 | |
| I, [2014-10-16T04:43:08.343562 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task23 | |
| I, [2014-10-16T04:43:08.346359 #10793] INFO -- : [#<Thread:0x00000002215bb8>] >>> starting task24 | |
| I, [2014-10-16T04:43:08.346892 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task05 task09 task24 task31 | |
| I, [2014-10-16T04:43:08.347035 #10793] INFO -- : [#<Thread:0x00000002215bb8>] task24 reads flags/task23.done | |
| I, [2014-10-16T04:43:10.329427 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 4 tasks: task05 task09 task24 task31 | |
| I, [2014-10-16T04:43:10.329695 #10793] INFO -- : [#<Thread:0x00000002216f68>] <<< finished task05 | |
| I, [2014-10-16T04:43:11.349507 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 3 tasks: task09 task24 task31 | |
| I, [2014-10-16T04:43:11.349596 #10793] INFO -- : [#<Thread:0x00000002215bb8>] <<< finished task24 | |
| I, [2014-10-16T04:43:11.349968 #10793] INFO -- : [#<Thread:0x00000002214538>] >>> starting task25 | |
| I, [2014-10-16T04:43:11.350319 #10793] INFO -- : [#<Thread:0x00000002214538>] running 3 tasks: task09 task25 task31 | |
| I, [2014-10-16T04:43:11.350384 #10793] INFO -- : [#<Thread:0x00000002214538>] task25 reads flags/task24.done | |
| I, [2014-10-16T04:43:12.337939 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task09 task25 task31 | |
| I, [2014-10-16T04:43:12.338275 #10793] INFO -- : [#<Thread:0x000000022222f0>] <<< finished task09 | |
| I, [2014-10-16T04:43:12.338985 #10793] INFO -- : [#<Thread:0x00000002222bd8>] >>> starting task10 | |
| I, [2014-10-16T04:43:12.339793 #10793] INFO -- : [#<Thread:0x000000022222f0>] >>> starting task41 | |
| I, [2014-10-16T04:43:12.340527 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 4 tasks: task10 task25 task31 task41 | |
| I, [2014-10-16T04:43:12.343436 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task10 task25 task31 task41 | |
| I, [2014-10-16T04:43:12.343855 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task10 reads flags/task05.done | |
| I, [2014-10-16T04:43:12.344015 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task10 reads flags/task06.done | |
| I, [2014-10-16T04:43:12.344150 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task10 reads flags/task09.done | |
| I, [2014-10-16T04:43:13.339267 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task10 task25 task31 task41 | |
| I, [2014-10-16T04:43:13.339494 #10793] INFO -- : [#<Thread:0x000000022189d0>] <<< finished task31 | |
| I, [2014-10-16T04:43:13.340228 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task32 | |
| I, [2014-10-16T04:43:13.341980 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task10 task25 task32 task41 | |
| I, [2014-10-16T04:43:13.342232 #10793] INFO -- : [#<Thread:0x00000002217da0>] task32 reads flags/task31.done | |
| I, [2014-10-16T04:43:14.352568 #10793] INFO -- : [#<Thread:0x00000002214538>] running 4 tasks: task10 task25 task32 task41 | |
| I, [2014-10-16T04:43:14.352698 #10793] INFO -- : [#<Thread:0x00000002214538>] <<< finished task25 | |
| I, [2014-10-16T04:43:18.346073 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 3 tasks: task10 task32 task41 | |
| I, [2014-10-16T04:43:18.346212 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task32 | |
| I, [2014-10-16T04:43:18.346766 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task51 | |
| I, [2014-10-16T04:43:18.346905 #10793] INFO -- : [#<Thread:0x00000002216f68>] >>> starting task33 | |
| I, [2014-10-16T04:43:18.347769 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task10 task33 task41 task51 | |
| I, [2014-10-16T04:43:18.348109 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 4 tasks: task10 task33 task41 task51 | |
| I, [2014-10-16T04:43:18.350029 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task10 task33 task41 task51 | |
| I, [2014-10-16T04:43:18.350114 #10793] INFO -- : [#<Thread:0x00000002222bd8>] <<< finished task10 | |
| I, [2014-10-16T04:43:18.350305 #10793] INFO -- : [#<Thread:0x00000002216f68>] task33 reads flags/task32.done | |
| I, [2014-10-16T04:43:19.344555 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task33 task41 task51 | |
| I, [2014-10-16T04:43:19.344781 #10793] INFO -- : [#<Thread:0x000000022222f0>] <<< finished task41 | |
| I, [2014-10-16T04:43:19.345557 #10793] INFO -- : [#<Thread:0x000000022189d0>] >>> starting task42 | |
| I, [2014-10-16T04:43:19.346618 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 3 tasks: task33 task42 task51 | |
| I, [2014-10-16T04:43:19.347221 #10793] INFO -- : [#<Thread:0x000000022189d0>] task42 reads flags/task41.done | |
| I, [2014-10-16T04:43:23.352651 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 3 tasks: task33 task42 task51 | |
| I, [2014-10-16T04:43:23.352808 #10793] INFO -- : [#<Thread:0x00000002216f68>] <<< finished task33 | |
| I, [2014-10-16T04:43:23.353344 #10793] INFO -- : [#<Thread:0x00000002215bb8>] >>> starting task34 | |
| I, [2014-10-16T04:43:23.354043 #10793] INFO -- : [#<Thread:0x00000002216f68>] >>> starting task61 | |
| I, [2014-10-16T04:43:23.354711 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 3 tasks: task34 task42 task51 | |
| I, [2014-10-16T04:43:23.355235 #10793] INFO -- : [#<Thread:0x00000002215bb8>] task34 reads flags/task33.done | |
| I, [2014-10-16T04:43:23.357703 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 4 tasks: task34 task42 task51 task61 | |
| I, [2014-10-16T04:43:24.351190 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task34 task42 task51 task61 | |
| I, [2014-10-16T04:43:24.351408 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task51 | |
| I, [2014-10-16T04:43:24.352061 #10793] INFO -- : [#<Thread:0x00000002222bd8>] >>> starting task52 | |
| I, [2014-10-16T04:43:24.353812 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task34 task42 task52 task61 | |
| I, [2014-10-16T04:43:24.354007 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task52 reads flags/task51.done | |
| I, [2014-10-16T04:43:26.350727 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task34 task42 task52 task61 | |
| I, [2014-10-16T04:43:26.350833 #10793] INFO -- : [#<Thread:0x000000022189d0>] <<< finished task42 | |
| I, [2014-10-16T04:43:26.351111 #10793] INFO -- : [#<Thread:0x00000002214538>] >>> starting task43 | |
| I, [2014-10-16T04:43:26.351669 #10793] INFO -- : [#<Thread:0x00000002214538>] running 4 tasks: task34 task43 task52 task61 | |
| I, [2014-10-16T04:43:26.351735 #10793] INFO -- : [#<Thread:0x00000002214538>] task43 reads flags/task42.done | |
| I, [2014-10-16T04:43:27.361106 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 4 tasks: task34 task43 task52 task61 | |
| I, [2014-10-16T04:43:27.361333 #10793] INFO -- : [#<Thread:0x00000002216f68>] <<< finished task61 | |
| I, [2014-10-16T04:43:27.362038 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task62 | |
| I, [2014-10-16T04:43:27.363965 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task34 task43 task52 task62 | |
| I, [2014-10-16T04:43:27.364192 #10793] INFO -- : [#<Thread:0x00000002217da0>] task62 reads flags/task61.done | |
| I, [2014-10-16T04:43:28.359104 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task34 task43 task52 task62 | |
| I, [2014-10-16T04:43:28.359384 #10793] INFO -- : [#<Thread:0x00000002215bb8>] <<< finished task34 | |
| I, [2014-10-16T04:43:28.360530 #10793] INFO -- : [#<Thread:0x00000002215bb8>] >>> starting task71 | |
| I, [2014-10-16T04:43:28.361770 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task43 task52 task62 task71 | |
| I, [2014-10-16T04:43:30.358226 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task43 task52 task62 task71 | |
| I, [2014-10-16T04:43:30.358416 #10793] INFO -- : [#<Thread:0x00000002222bd8>] <<< finished task52 | |
| I, [2014-10-16T04:43:30.358962 #10793] INFO -- : [#<Thread:0x000000022222f0>] >>> starting task53 | |
| I, [2014-10-16T04:43:30.360568 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 4 tasks: task43 task53 task62 task71 | |
| I, [2014-10-16T04:43:30.360776 #10793] INFO -- : [#<Thread:0x000000022222f0>] task53 reads flags/task52.done | |
| I, [2014-10-16T04:43:30.365920 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task43 task53 task62 task71 | |
| I, [2014-10-16T04:43:30.366079 #10793] INFO -- : [#<Thread:0x00000002215bb8>] <<< finished task71 | |
| I, [2014-10-16T04:43:30.366968 #10793] INFO -- : [#<Thread:0x00000002222bd8>] >>> starting task72 | |
| I, [2014-10-16T04:43:30.368309 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task43 task53 task62 task72 | |
| I, [2014-10-16T04:43:30.368506 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task72 reads flags/task71.done | |
| I, [2014-10-16T04:43:31.368766 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 4 tasks: task43 task53 task62 task72 | |
| I, [2014-10-16T04:43:31.369047 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task62 | |
| I, [2014-10-16T04:43:31.369844 #10793] INFO -- : [#<Thread:0x000000022189d0>] >>> starting task63 | |
| I, [2014-10-16T04:43:31.371670 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 4 tasks: task43 task53 task63 task72 | |
| I, [2014-10-16T04:43:31.371944 #10793] INFO -- : [#<Thread:0x000000022189d0>] task63 reads flags/task62.done | |
| I, [2014-10-16T04:43:32.373213 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 4 tasks: task43 task53 task63 task72 | |
| I, [2014-10-16T04:43:32.373435 #10793] INFO -- : [#<Thread:0x00000002222bd8>] <<< finished task72 | |
| I, [2014-10-16T04:43:32.374178 #10793] INFO -- : [#<Thread:0x00000002215bb8>] >>> starting task73 | |
| I, [2014-10-16T04:43:32.375695 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 4 tasks: task43 task53 task63 task73 | |
| I, [2014-10-16T04:43:32.375868 #10793] INFO -- : [#<Thread:0x00000002215bb8>] task73 reads flags/task72.done | |
| I, [2014-10-16T04:43:33.354485 #10793] INFO -- : [#<Thread:0x00000002214538>] running 4 tasks: task43 task53 task63 task73 | |
| I, [2014-10-16T04:43:33.354714 #10793] INFO -- : [#<Thread:0x00000002214538>] <<< finished task43 | |
| I, [2014-10-16T04:43:34.380147 #10793] INFO -- : [#<Thread:0x00000002215bb8>] running 3 tasks: task53 task63 task73 | |
| I, [2014-10-16T04:43:34.380356 #10793] INFO -- : [#<Thread:0x00000002215bb8>] <<< finished task73 | |
| I, [2014-10-16T04:43:34.387757 #10793] INFO -- : [#<Thread:0x00000002217da0>] >>> starting task74 | |
| I, [2014-10-16T04:43:34.389325 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 3 tasks: task53 task63 task74 | |
| I, [2014-10-16T04:43:34.389548 #10793] INFO -- : [#<Thread:0x00000002217da0>] task74 reads flags/task73.done | |
| I, [2014-10-16T04:43:35.376560 #10793] INFO -- : [#<Thread:0x000000022189d0>] running 3 tasks: task53 task63 task74 | |
| I, [2014-10-16T04:43:35.376787 #10793] INFO -- : [#<Thread:0x000000022189d0>] <<< finished task63 | |
| I, [2014-10-16T04:43:35.377584 #10793] INFO -- : [#<Thread:0x00000002216f68>] >>> starting task64 | |
| I, [2014-10-16T04:43:35.379232 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 3 tasks: task53 task64 task74 | |
| I, [2014-10-16T04:43:35.379452 #10793] INFO -- : [#<Thread:0x00000002216f68>] task64 reads flags/task63.done | |
| I, [2014-10-16T04:43:36.365349 #10793] INFO -- : [#<Thread:0x000000022222f0>] running 3 tasks: task53 task64 task74 | |
| I, [2014-10-16T04:43:36.365574 #10793] INFO -- : [#<Thread:0x000000022222f0>] <<< finished task53 | |
| I, [2014-10-16T04:43:36.394182 #10793] INFO -- : [#<Thread:0x00000002217da0>] running 2 tasks: task64 task74 | |
| I, [2014-10-16T04:43:36.394406 #10793] INFO -- : [#<Thread:0x00000002217da0>] <<< finished task74 | |
| I, [2014-10-16T04:43:36.395105 #10793] INFO -- : [#<Thread:0x00000002222bd8>] >>> starting task75 | |
| I, [2014-10-16T04:43:36.396512 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 2 tasks: task64 task75 | |
| I, [2014-10-16T04:43:36.396698 #10793] INFO -- : [#<Thread:0x00000002222bd8>] task75 reads flags/task74.done | |
| I, [2014-10-16T04:43:38.399822 #10793] INFO -- : [#<Thread:0x00000002222bd8>] running 2 tasks: task64 task75 | |
| I, [2014-10-16T04:43:38.400043 #10793] INFO -- : [#<Thread:0x00000002222bd8>] <<< finished task75 | |
| I, [2014-10-16T04:43:39.383986 #10793] INFO -- : [#<Thread:0x00000002216f68>] running 1 tasks: task64 | |
| I, [2014-10-16T04:43:39.384196 #10793] INFO -- : [#<Thread:0x00000002216f68>] <<< finished task64 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'rake/clean' | |
| require 'logger' | |
| directory "flags" | |
| CLEAN.include "flags" | |
| CLOBBER.include "deps.dot" | |
| logger = Logger.new($stderr) | |
| dependency_graph = [] | |
| provides_graph = {} | |
| default_task_prerequisites = [] | |
| log_running_tasks = ->{ | |
| running_tasks = Dir.glob('flags/*.running').map{|f| File.basename(f, '.running')} - Dir.glob('flags/*.done').map{|f| File.basename(f, '.done')} | |
| logger.info "[#{Thread.current}] running #{running_tasks.size} tasks: #{running_tasks.sort.join(' ')}" | |
| } | |
| define_multitask = ->(name, deps, body){ | |
| done_flag = "flags/#{name}.done" | |
| run_flag = "flags/#{name}.running" | |
| file done_flag => [ "flags" ] do |t| | |
| Rake::Task[name].invoke | |
| touch t.name, :verbose => false | |
| end | |
| file run_flag => ["flags" ] do |t| | |
| touch t.name, :verbose => false | |
| end | |
| desc "#{name}" | |
| multitask name => deps.map{|x| "flags/#{x}.done"} do |t,args| | |
| logger.info "[#{Thread.current}] >>> starting #{t.name}" | |
| Rake::Task[run_flag].invoke | |
| log_running_tasks.call | |
| t.prerequisites.each{ |f| | |
| File.read(f) | |
| logger.info "[#{Thread.current}] #{t.name} reads #{f}" | |
| } | |
| body.call | |
| log_running_tasks.call | |
| logger.info "[#{Thread.current}] <<< finished #{t.name}" | |
| end | |
| CLEAN.include done_flag | |
| CLEAN.include run_flag | |
| dependency_graph << [name] | |
| deps.each do |dep| | |
| dependency_graph << [name, dep] | |
| end | |
| provides_graph[name] ||= [] | |
| deps.each do |d| | |
| provides_graph[d] ||= [] | |
| provides_graph[d] << name | |
| end | |
| default_task_prerequisites << done_flag | |
| } | |
| define_multitask["task01", [], ->{ system("sleep 10") }] | |
| define_multitask["task02", [], ->{ system("sleep 7") }] | |
| define_multitask["task03", [], ->{ system("sleep 5") }] | |
| define_multitask["task04", [], ->{ system("sleep 11") }] | |
| define_multitask["task05", ["task01"], ->{ system("sleep 12") }] | |
| define_multitask["task06", ["task02"], ->{ system("sleep 8") }] | |
| define_multitask["task07", ["task01", "task02"], ->{ system("sleep 3") }] | |
| define_multitask["task08", ["task03", "task04"], ->{ system("sleep 9") }] | |
| define_multitask["task09", ["task07", "task08"], ->{ system("sleep 4") }] | |
| define_multitask["task10", ["task05", "task06", "task09"], ->{ system("sleep 6") }] | |
| define_multitask["task21", [], ->{ system("sleep 3") }] | |
| define_multitask["task22", ["task21"], ->{ system("sleep 3") }] | |
| define_multitask["task23", ["task22"], ->{ system("sleep 3") }] | |
| define_multitask["task24", ["task23"], ->{ system("sleep 3") }] | |
| define_multitask["task25", ["task24"], ->{ system("sleep 3") }] | |
| define_multitask["task31", [], ->{ system("sleep 5") }] | |
| define_multitask["task32", ["task31"], ->{ system("sleep 5") }] | |
| define_multitask["task33", ["task32"], ->{ system("sleep 5") }] | |
| define_multitask["task34", ["task33"], ->{ system("sleep 5") }] | |
| define_multitask["task41", [], ->{ system("sleep 7") }] | |
| define_multitask["task42", ["task41"], ->{ system("sleep 7") }] | |
| define_multitask["task43", ["task42"], ->{ system("sleep 7") }] | |
| define_multitask["task51", [], ->{ system("sleep 6") }] | |
| define_multitask["task52", ["task51"], ->{ system("sleep 6") }] | |
| define_multitask["task53", ["task52"], ->{ system("sleep 6") }] | |
| define_multitask["task61", [], ->{ system("sleep 4") }] | |
| define_multitask["task62", ["task61"], ->{ system("sleep 4") }] | |
| define_multitask["task63", ["task62"], ->{ system("sleep 4") }] | |
| define_multitask["task64", ["task63"], ->{ system("sleep 4") }] | |
| define_multitask["task71", [], ->{ system("sleep 2") }] | |
| define_multitask["task72", ["task71"], ->{ system("sleep 2") }] | |
| define_multitask["task73", ["task72"], ->{ system("sleep 2") }] | |
| define_multitask["task74", ["task73"], ->{ system("sleep 2") }] | |
| define_multitask["task75", ["task74"], ->{ system("sleep 2") }] | |
| multitask :default => default_task_prerequisites | |
| require 'tsort' | |
| class Hash | |
| include TSort | |
| alias tsort_each_node each_key | |
| def tsort_each_child(node, &block) | |
| fetch(node).each(&block) | |
| end | |
| end | |
| multitask :default_with_tsort => provides_graph.tsort.map{|t| "flags/#{t}.done"} | |
| desc "task dependency graph" | |
| file "deps.dot" => "Rakefile" do |t| | |
| File.open(t.name, "w") do |fh| | |
| fh << "digraph G {\n" | |
| dependency_graph.each do |name, dep| | |
| if dep | |
| fh << " \"#{dep}\" -> \"#{name}\";\n" | |
| else | |
| fh << " \"default\" -> \"#{name}\" [style=dotted, arrowhead=empty];\n" | |
| end | |
| end | |
| fh << "}\n" | |
| end | |
| end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment