vijeth-aradhya / celery-priority-tasking Goto Github PK
View Code? Open in Web Editor NEWThis is a prototype to schedule jobs in the backend based on some priority using Rabbitmq and Celery.
This is a prototype to schedule jobs in the backend based on some priority using Rabbitmq and Celery.
Switch particular statements in the chain like this:
@app.route('/transcodeALL', methods=['POST'])
def transcodeToALL():
if request.method == 'POST':
# We will do something like this to simulate actual processing of a video
transcoding_tasks = group(
transcode_1080p.signature(queue='tasks', priority=1, immutable=True),
transcode_720p.signature(queue='tasks', priority=2, immutable=True),
transcode_480p.signature(queue='tasks', priority=3, immutable=True),
transcode_360p.signature(queue='tasks', priority=4, immutable=True)
)
main_task = chain(
transcoding_tasks,
common_setup.signature(queue='tasks', immutable=True),
end_processing.signature(queue='tasks', immutable=True),
)
main_task.apply_async()
return 'Video is getting transcoded to all dimensions!'
else:
return 'ERROR: Wrong HTTP Method'
Only the group of tasks is executed, i.e anything after the Celery group is not executed in the Celery chain.
Here is the Celery log for it:
/home/vijeth/.local/lib/python2.7/site-packages/celery/backends/amqp.py:68: CPendingDeprecationWarning:
The AMQP result backend is scheduled for deprecation in version 4.0 and removal in version v5.0. Please use RPC backend or a persistent backend.
alternative='Please use RPC backend or a persistent backend.')
-------------- celery@Ganita v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-78-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-02 04:17:26
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7fa3d4152ed0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> tasks exchange=tasks(direct) key=tasks
[tasks]
. tasks.common_setup
. tasks.end_processing
. tasks.transcode_1080p
. tasks.transcode_360p
. tasks.transcode_480p
. tasks.transcode_720p
[2017-06-02 04:17:26,592: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2017-06-02 04:17:26,603: INFO/MainProcess] mingle: searching for neighbors
[2017-06-02 04:17:27,634: INFO/MainProcess] mingle: all alone
[2017-06-02 04:17:27,664: INFO/MainProcess] celery@Ganita ready.
[2017-06-02 04:17:34,732: INFO/MainProcess] Received task: tasks.transcode_1080p[71cac21a-956b-4b6e-9d25-76362b765d49]
[2017-06-02 04:17:35,673: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 04:17:55,679: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 04:17:55,794: INFO/PoolWorker-1] Task tasks.transcode_1080p[71cac21a-956b-4b6e-9d25-76362b765d49] succeeded in 20.121138555s: None
[2017-06-02 04:17:55,797: INFO/MainProcess] Received task: tasks.transcode_360p[18264701-bdcb-4209-8b64-6439db993f18]
[2017-06-02 04:17:57,646: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 04:18:02,651: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 04:18:02,774: INFO/PoolWorker-1] Task tasks.transcode_360p[18264701-bdcb-4209-8b64-6439db993f18] succeeded in 5.12820804s: None
[2017-06-02 04:18:02,776: INFO/MainProcess] Received task: tasks.transcode_480p[a2546c73-f8ad-47a5-8ee5-f034cb445db2]
[2017-06-02 04:18:03,702: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 04:18:13,706: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 04:18:13,800: INFO/PoolWorker-1] Task tasks.transcode_480p[a2546c73-f8ad-47a5-8ee5-f034cb445db2] succeeded in 10.098037332s: None
[2017-06-02 04:18:13,803: INFO/MainProcess] Received task: tasks.transcode_720p[e47df7e3-1cbf-4419-ba24-536c8d24b467]
[2017-06-02 04:18:15,715: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 04:18:30,731: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 04:18:30,819: INFO/PoolWorker-1] Task tasks.transcode_720p[e47df7e3-1cbf-4419-ba24-536c8d24b467] succeeded in 15.10355237s: None
So, the same thing is happening right now as well - end_processing
method is not being called at all.
So, when we simulate '2' video processing at the same time with groups, both 360p transcoding happens one after another, and then it goes onto the next priority and so on. This is how priority in video processing should really work.
/home/vijeth/.local/lib/python2.7/site-packages/celery/backends/amqp.py:68: CPendingDeprecationWarning:
The AMQP result backend is scheduled for deprecation in version 4.0 and removal in version v5.0. Please use RPC backend or a persistent backend.
alternative='Please use RPC backend or a persistent backend.')
-------------- celery@Ganita v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-78-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-02 03:51:15
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7eff061b0ed0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> tasks exchange=tasks(direct) key=tasks
[tasks]
. tasks.common_setup
. tasks.end_processing
. tasks.transcode_1080p
. tasks.transcode_360p
. tasks.transcode_480p
. tasks.transcode_720p
[2017-06-02 03:51:15,942: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2017-06-02 03:51:15,962: INFO/MainProcess] mingle: searching for neighbors
[2017-06-02 03:51:16,987: INFO/MainProcess] mingle: all alone
[2017-06-02 03:51:17,014: INFO/MainProcess] celery@Ganita ready.
[2017-06-02 03:51:23,997: INFO/MainProcess] Received task: tasks.transcode_1080p[a2d97988-30f3-4768-97dc-81a42b7f0c37]
[2017-06-02 03:51:25,971: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 03:51:45,992: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 03:51:46,149: INFO/PoolWorker-1] Task tasks.transcode_1080p[a2d97988-30f3-4768-97dc-81a42b7f0c37] succeeded in 20.178105037s: None
[2017-06-02 03:51:46,154: INFO/MainProcess] Received task: tasks.transcode_360p[ee4046a7-8249-4df1-b0fa-5a95ef3dc511]
[2017-06-02 03:51:46,993: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 03:51:51,998: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 03:51:52,130: INFO/PoolWorker-1] Task tasks.transcode_360p[ee4046a7-8249-4df1-b0fa-5a95ef3dc511] succeeded in 5.137718317s: None
[2017-06-02 03:51:52,133: INFO/MainProcess] Received task: tasks.transcode_360p[bb01d207-172a-4284-9549-6f54b80a056a]
[2017-06-02 03:51:54,007: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 03:51:59,012: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 03:51:59,133: INFO/PoolWorker-1] Task tasks.transcode_360p[bb01d207-172a-4284-9549-6f54b80a056a] succeeded in 5.126803657s: None
[2017-06-02 03:51:59,136: INFO/MainProcess] Received task: tasks.transcode_480p[d9be5553-9d3f-4a66-8cd8-21c8279ddd8c]
[2017-06-02 03:52:00,013: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 03:52:10,020: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 03:52:10,138: INFO/PoolWorker-1] Task tasks.transcode_480p[d9be5553-9d3f-4a66-8cd8-21c8279ddd8c] succeeded in 10.124292299s: None
[2017-06-02 03:52:10,140: INFO/MainProcess] Received task: tasks.transcode_480p[afa579b6-4703-4406-9dbf-d06a8641cb95]
[2017-06-02 03:52:12,000: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 03:52:22,011: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 03:52:22,121: INFO/PoolWorker-1] Task tasks.transcode_480p[afa579b6-4703-4406-9dbf-d06a8641cb95] succeeded in 10.121313699s: None
[2017-06-02 03:52:22,124: INFO/MainProcess] Received task: tasks.transcode_720p[6e64d1eb-efc7-45fe-8f06-2ce7dab7ee39]
[2017-06-02 03:52:24,041: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 03:52:39,043: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 03:52:39,176: INFO/PoolWorker-1] Task tasks.transcode_720p[6e64d1eb-efc7-45fe-8f06-2ce7dab7ee39] succeeded in 15.13601842s: None
[2017-06-02 03:52:39,179: INFO/MainProcess] Received task: tasks.transcode_720p[1d68db37-1054-45c8-ab1b-dc6d06ad97fe]
[2017-06-02 03:52:40,057: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 03:52:55,066: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 03:52:55,171: INFO/PoolWorker-1] Task tasks.transcode_720p[1d68db37-1054-45c8-ab1b-dc6d06ad97fe] succeeded in 15.1142712s: None
[2017-06-02 03:52:55,174: INFO/MainProcess] Received task: tasks.transcode_1080p[aa72a804-188b-4307-892b-069ab3f608ca]
[2017-06-02 03:52:56,076: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 03:53:16,094: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 03:53:16,215: INFO/PoolWorker-1] Task tasks.transcode_1080p[aa72a804-188b-4307-892b-069ab3f608ca] succeeded in 20.139351078s: None
But, when I use Celery chain to accommodate a some sequentiality in practical scenarios, only the tasks in the group get prioritized and they are executed. So, basically the whole chain gets executed and then the next chain is executed. This is actually quite bad in terms of priority.
/home/vijeth/.local/lib/python2.7/site-packages/celery/backends/amqp.py:68: CPendingDeprecationWarning:
The AMQP result backend is scheduled for deprecation in version 4.0 and removal in version v5.0. Please use RPC backend or a persistent backend.
alternative='Please use RPC backend or a persistent backend.')
-------------- celery@Ganita v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-78-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-02 03:54:35
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7f5317553ed0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> tasks exchange=tasks(direct) key=tasks
[tasks]
. tasks.common_setup
. tasks.end_processing
. tasks.transcode_1080p
. tasks.transcode_360p
. tasks.transcode_480p
. tasks.transcode_720p
[2017-06-02 03:54:35,689: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2017-06-02 03:54:35,699: INFO/MainProcess] mingle: searching for neighbors
[2017-06-02 03:54:36,725: INFO/MainProcess] mingle: all alone
[2017-06-02 03:54:36,781: INFO/MainProcess] celery@Ganita ready.
[2017-06-02 03:54:58,934: INFO/MainProcess] Received task: tasks.common_setup[cc3c61fb-5625-47fb-bd33-c807db30f563]
[2017-06-02 03:55:00,798: WARNING/PoolWorker-1] BEGIN: Setup the processor!
[2017-06-02 03:55:05,804: WARNING/PoolWorker-1] END: Seting up finished
[2017-06-02 03:55:05,962: INFO/PoolWorker-1] Task tasks.common_setup[cc3c61fb-5625-47fb-bd33-c807db30f563] succeeded in 5.16448206401s: None
[2017-06-02 03:55:05,983: INFO/MainProcess] Received task: tasks.transcode_360p[5bf246e0-e480-4142-a476-b3d0351c17ae]
[2017-06-02 03:55:06,734: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 03:55:11,739: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 03:55:11,857: INFO/PoolWorker-1] Task tasks.transcode_360p[5bf246e0-e480-4142-a476-b3d0351c17ae] succeeded in 5.123515695s: None
[2017-06-02 03:55:11,860: INFO/MainProcess] Received task: tasks.transcode_480p[2afb3be7-ea00-4a41-880b-daf1ce38c596]
[2017-06-02 03:55:12,810: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 03:55:22,818: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 03:55:22,941: INFO/PoolWorker-1] Task tasks.transcode_480p[2afb3be7-ea00-4a41-880b-daf1ce38c596] succeeded in 10.131152562s: None
[2017-06-02 03:55:22,945: INFO/MainProcess] Received task: tasks.transcode_720p[c6fc1562-01e8-4141-a0d0-e6eb64fbe826]
[2017-06-02 03:55:24,823: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 03:55:39,838: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 03:55:39,926: INFO/PoolWorker-1] Task tasks.transcode_720p[c6fc1562-01e8-4141-a0d0-e6eb64fbe826] succeeded in 15.103652763s: None
[2017-06-02 03:55:39,929: INFO/MainProcess] Received task: tasks.transcode_1080p[c72a1b6e-78ed-4b5e-baad-2c4372a89a64]
[2017-06-02 03:55:40,837: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 03:56:00,856: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 03:56:00,947: INFO/PoolWorker-1] Task tasks.transcode_1080p[c72a1b6e-78ed-4b5e-baad-2c4372a89a64] succeeded in 20.110280354s: None
[2017-06-02 03:56:00,951: INFO/MainProcess] Received task: tasks.common_setup[34b335f7-70b8-446e-84db-701508c525df]
[2017-06-02 03:56:01,749: WARNING/PoolWorker-1] BEGIN: Setup the processor!
[2017-06-02 03:56:06,755: WARNING/PoolWorker-1] END: Seting up finished
[2017-06-02 03:56:06,895: INFO/PoolWorker-1] Task tasks.common_setup[34b335f7-70b8-446e-84db-701508c525df] succeeded in 5.14550323199s: None
[2017-06-02 03:56:06,897: INFO/MainProcess] Received task: tasks.transcode_360p[af1e91be-e603-4bba-aa16-c4eeeba6e542]
[2017-06-02 03:56:08,867: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 03:56:13,873: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 03:56:13,989: INFO/PoolWorker-1] Task tasks.transcode_360p[af1e91be-e603-4bba-aa16-c4eeeba6e542] succeeded in 5.122588753s: None
[2017-06-02 03:56:13,993: INFO/MainProcess] Received task: tasks.transcode_480p[9f72a39a-4ea7-4649-8c70-001e612f0656]
[2017-06-02 03:56:14,873: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 03:56:24,876: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 03:56:25,050: INFO/PoolWorker-1] Task tasks.transcode_480p[9f72a39a-4ea7-4649-8c70-001e612f0656] succeeded in 10.176366508s: None
[2017-06-02 03:56:25,156: INFO/MainProcess] Received task: tasks.transcode_720p[bd5efb9f-729e-4927-a222-30b97c67c193]
[2017-06-02 03:56:26,755: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 03:56:41,763: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 03:56:41,884: INFO/PoolWorker-1] Task tasks.transcode_720p[bd5efb9f-729e-4927-a222-30b97c67c193] succeeded in 15.129495504s: None
[2017-06-02 03:56:41,887: INFO/MainProcess] Received task: tasks.transcode_1080p[de0e6168-2616-40bd-b22e-0b2dd084288f]
[2017-06-02 03:56:42,901: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 03:57:02,914: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 03:57:03,029: INFO/PoolWorker-1] Task tasks.transcode_1080p[de0e6168-2616-40bd-b22e-0b2dd084288f] succeeded in 20.128588664s: None
Although if we don't chain the tasks, and do a simple hack:
@app.route('/transcodeMANY', methods=['POST'])
def transcodeToMany():
for i in range(int(request.args['numOfVids'])):
# Real time scenario
common_setup.apply_async(queue='tasks', priority=9)
group(
transcode_1080p.signature(queue='tasks', priority=2),
transcode_720p.signature(queue='tasks', priority=3),
transcode_480p.signature(queue='tasks', priority=4),
transcode_360p.signature(queue='tasks', priority=5)
).apply_async()
end_processing.apply_async(queue='tasks', priority=1)
return(str(request.args['numOfVids']) + ' video(s) being transcoded to all dimensions!')
We get the expected/wanted results!
/home/vijeth/.local/lib/python2.7/site-packages/celery/backends/amqp.py:68: CPendingDeprecationWarning:
The AMQP result backend is scheduled for deprecation in version 4.0 and removal in version v5.0. Please use RPC backend or a persistent backend.
alternative='Please use RPC backend or a persistent backend.')
-------------- celery@Ganita v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-78-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-02 04:00:14
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7f76109fbed0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> tasks exchange=tasks(direct) key=tasks
[tasks]
. tasks.common_setup
. tasks.end_processing
. tasks.transcode_1080p
. tasks.transcode_360p
. tasks.transcode_480p
. tasks.transcode_720p
[2017-06-02 04:00:14,768: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2017-06-02 04:00:14,778: INFO/MainProcess] mingle: searching for neighbors
[2017-06-02 04:00:15,810: INFO/MainProcess] mingle: all alone
[2017-06-02 04:00:15,834: INFO/MainProcess] celery@Ganita ready.
[2017-06-02 04:00:21,274: INFO/MainProcess] Received task: tasks.common_setup[30e6ad79-494c-46c1-97b4-8fed97a2e142]
[2017-06-02 04:00:21,826: WARNING/PoolWorker-1] BEGIN: Setup the processor!
[2017-06-02 04:00:26,828: WARNING/PoolWorker-1] END: Seting up finished
[2017-06-02 04:00:26,974: INFO/PoolWorker-1] Task tasks.common_setup[30e6ad79-494c-46c1-97b4-8fed97a2e142] succeeded in 5.147495677s: None
[2017-06-02 04:00:26,977: INFO/MainProcess] Received task: tasks.transcode_360p[ea887c5a-48c3-4351-8de8-be7bfaa94c90]
[2017-06-02 04:00:27,834: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 04:00:32,838: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 04:00:32,925: INFO/PoolWorker-1] Task tasks.transcode_360p[ea887c5a-48c3-4351-8de8-be7bfaa94c90] succeeded in 5.091485556s: None
[2017-06-02 04:00:32,927: INFO/MainProcess] Received task: tasks.transcode_360p[c2a1a997-387b-49e1-90d4-4d38cdbd6ded]
[2017-06-02 04:00:33,841: WARNING/PoolWorker-1] BEGIN: Video transcoding to 360p resolution!
[2017-06-02 04:00:38,846: WARNING/PoolWorker-1] END: Video transcoded to 360p resolution!
[2017-06-02 04:00:38,939: INFO/PoolWorker-1] Task tasks.transcode_360p[c2a1a997-387b-49e1-90d4-4d38cdbd6ded] succeeded in 5.09801183001s: None
[2017-06-02 04:00:38,941: INFO/MainProcess] Received task: tasks.transcode_480p[55c0a275-15bb-490f-b19f-04dd56df0dcc]
[2017-06-02 04:00:39,847: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 04:00:49,858: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 04:00:49,951: INFO/PoolWorker-1] Task tasks.transcode_480p[55c0a275-15bb-490f-b19f-04dd56df0dcc] succeeded in 10.103757798s: None
[2017-06-02 04:00:49,952: INFO/MainProcess] Received task: tasks.transcode_480p[8caf2f76-160d-4b71-9abc-8979b671828c]
[2017-06-02 04:00:50,819: WARNING/PoolWorker-1] BEGIN: Video transcoding to 480p resolution!
[2017-06-02 04:01:00,828: WARNING/PoolWorker-1] END: Video transcoded to 480p resolution!
[2017-06-02 04:01:00,900: INFO/PoolWorker-1] Task tasks.transcode_480p[8caf2f76-160d-4b71-9abc-8979b671828c] succeeded in 10.081117326s: None
[2017-06-02 04:01:00,902: INFO/MainProcess] Received task: tasks.transcode_720p[a4ea611d-7e53-4d3f-8c28-7c3ae29986fc]
[2017-06-02 04:01:01,872: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 04:01:16,888: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 04:01:16,995: INFO/PoolWorker-1] Task tasks.transcode_720p[a4ea611d-7e53-4d3f-8c28-7c3ae29986fc] succeeded in 15.12256044s: None
[2017-06-02 04:01:16,999: INFO/MainProcess] Received task: tasks.transcode_720p[3562232f-6b48-4dfe-b5e7-c442881b5335]
[2017-06-02 04:01:17,889: WARNING/PoolWorker-1] BEGIN: Video transcoding to 720p resolution!
[2017-06-02 04:01:32,905: WARNING/PoolWorker-1] END: Video transcoded to 720p resolution!
[2017-06-02 04:01:33,000: INFO/PoolWorker-1] Task tasks.transcode_720p[3562232f-6b48-4dfe-b5e7-c442881b5335] succeeded in 15.110605667s: None
[2017-06-02 04:01:33,003: INFO/MainProcess] Received task: tasks.transcode_1080p[06cd3369-1191-4de1-a9d8-ca974b21f0a2]
[2017-06-02 04:01:33,905: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 04:01:53,915: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 04:01:54,020: INFO/PoolWorker-1] Task tasks.transcode_1080p[06cd3369-1191-4de1-a9d8-ca974b21f0a2] succeeded in 20.114989876s: None
[2017-06-02 04:01:54,026: INFO/MainProcess] Received task: tasks.transcode_1080p[e52dcb37-6bf0-4b38-a5e5-5d21e5ef4c94]
[2017-06-02 04:01:55,836: WARNING/PoolWorker-1] BEGIN: Video transcoding to 1080p resolution!
[2017-06-02 04:02:15,840: WARNING/PoolWorker-1] END: Video transcoded to 1080p resolution!
[2017-06-02 04:02:15,949: INFO/PoolWorker-1] Task tasks.transcode_1080p[e52dcb37-6bf0-4b38-a5e5-5d21e5ef4c94] succeeded in 20.113569626s: None
[2017-06-02 04:02:15,952: INFO/MainProcess] Received task: tasks.end_processing[bb784319-5f9b-4901-884b-9718b44bbe19]
[2017-06-02 04:02:17,950: WARNING/PoolWorker-1] BEGIN: Ending the processors!
[2017-06-02 04:02:22,953: WARNING/PoolWorker-1] END: Processing ended
[2017-06-02 04:02:23,071: INFO/PoolWorker-1] Task tasks.end_processing[bb784319-5f9b-4901-884b-9718b44bbe19] succeeded in 5.12123229999s: None
[2017-06-02 04:02:23,074: INFO/MainProcess] Received task: tasks.common_setup[f495d6cd-963f-477c-97b1-d32da945e5f8]
[2017-06-02 04:02:23,957: WARNING/PoolWorker-1] BEGIN: Setup the processor!
[2017-06-02 04:02:28,960: WARNING/PoolWorker-1] END: Seting up finished
[2017-06-02 04:02:29,051: INFO/PoolWorker-1] Task tasks.common_setup[f495d6cd-963f-477c-97b1-d32da945e5f8] succeeded in 5.093517823s: None
[2017-06-02 04:02:29,067: INFO/MainProcess] Received task: tasks.end_processing[f52c05e2-9129-46e1-b508-52f087eb0c6f]
[2017-06-02 04:02:29,963: WARNING/PoolWorker-1] BEGIN: Ending the processors!
[2017-06-02 04:02:34,964: WARNING/PoolWorker-1] END: Processing ended
[2017-06-02 04:02:35,065: INFO/PoolWorker-1] Task tasks.end_processing[f52c05e2-9129-46e1-b508-52f087eb0c6f] succeeded in 5.10191989101s: None
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.