Skip to content

Commit e773f7f

Browse files
committed
how to run celery examples
1 parent 17bef66 commit e773f7f

3 files changed

Lines changed: 47 additions & 40 deletions

File tree

‎webinar.md‎

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
- [Процесс](#orgdce21ae)
2-
- [Поток](#org899e90b)
3-
- [Что можно узнать про процесс?](#orgfb9a80d)
4-
- [создание процессов](#org9a5aa98)
5-
- [CPU-bound / IO-bound задачи](#orgb15f906)
6-
- [GIL](#org0a72ae4)
7-
- [GIL](#orgc07038f)
8-
- [GIL](#orgf68f849)
9-
- [GIL](#org590eacd)
10-
- [Практика](#orgffa42c4)
11-
- [Дополнительная литература](#orgd9c5aae)
12-
- [Что такое Celery?](#orge2ecbad)
13-
- [Практика запуска задач на Celery](#org959a42c)
14-
- [Практика запуска задач на Celery](#org6ad8e52)
15-
- [Что такое map-reduce](#orgf8b3195)
16-
- [Практика запуска map-reduce на pyspark](#org225a94f)
17-
- [Практика запуска map-reduce на pyspark](#org68827c3)
18-
- [Вопросы-ответы](#org48e2a02)
19-
20-
21-
22-
<a id="orgdce21ae"></a>
1+
- [Процесс](#orgf325def)
2+
- [Поток](#orgd3abaef)
3+
- [Что можно узнать про процесс?](#org70c1b81)
4+
- [создание процессов](#orgfc89ae2)
5+
- [CPU-bound / IO-bound задачи](#org8478f28)
6+
- [GIL](#org8b5e883)
7+
- [GIL](#orgb0903ca)
8+
- [GIL](#org480d63e)
9+
- [GIL](#orgc90ac95)
10+
- [Практика](#orgef919a8)
11+
- [Дополнительная литература](#org704d888)
12+
- [Что такое Celery?](#org491c26f)
13+
- [Практика запуска задач на Celery](#org65eca52)
14+
- [Практика запуска задач на Celery](#org1efd6c7)
15+
- [Что такое map-reduce](#org9bcb22d)
16+
- [Практика запуска map-reduce на pyspark](#orgb4ce801)
17+
- [Практика запуска map-reduce на pyspark](#orgf20c815)
18+
- [Вопросы-ответы](#org3ed99ab)
19+
20+
21+
22+
<a id="orgf325def"></a>
2323

2424
# Процесс
2525

@@ -32,7 +32,7 @@
3232
Переключение между процессами происходит на уровне ядра.
3333

3434

35-
<a id="org899e90b"></a>
35+
<a id="orgd3abaef"></a>
3636

3737
# Поток
3838

@@ -42,7 +42,7 @@
4242
Переключение между потоками может происходить как на уровне ядра, так и на уровне пользователя (процесса).
4343

4444

45-
<a id="orgfb9a80d"></a>
45+
<a id="org70c1b81"></a>
4646

4747
# Что можно узнать про процесс?
4848

@@ -55,7 +55,7 @@ ls -l /proc/<PID>/
5555
```
5656

5757

58-
<a id="org9a5aa98"></a>
58+
<a id="orgfc89ae2"></a>
5959

6060
# создание процессов
6161

@@ -65,15 +65,15 @@ ls -l /proc/<PID>/
6565
- **CreateProcess:** Win2k-системы
6666

6767

68-
<a id="orgb15f906"></a>
68+
<a id="org8478f28"></a>
6969

7070
# CPU-bound / IO-bound задачи
7171

7272
- **CPU-bound:** задачи, которые активно используют CPU. Арифметические операции, матричные вычисления, поиск строк, и т.д.
7373
- **IO-bound:** задачи, связанные с вводом-выводом данных. Работа с сетью, с файловыми системами, с пользовательским вводом
7474

7575

76-
<a id="org0a72ae4"></a>
76+
<a id="org8b5e883"></a>
7777

7878
# GIL
7979

@@ -86,14 +86,14 @@ static PyThread_type_lock
8686
```
8787

8888

89-
<a id="orgc07038f"></a>
89+
<a id="orgb0903ca"></a>
9090

9191
# GIL
9292

9393
GIL гарантирует интерпретатору, что только один *поток* может быть запущен в текущий момент. Это сделано для безопасной работы управления памятью, вызова расширений написанных на других языках (на C).
9494

9595

96-
<a id="orgf68f849"></a>
96+
<a id="org480d63e"></a>
9797

9898
# GIL
9999

@@ -103,21 +103,21 @@ GIL гарантирует интерпретатору, что только о
103103
- sys.getswitchinterval() # -> Python3
104104

105105

106-
<a id="org590eacd"></a>
106+
<a id="orgc90ac95"></a>
107107

108108
# GIL
109109

110110
GIL замедляет CPU-bound задачи. Старая реализация GIL очень плохо работала с *CPU-bound + IO-bound* задачами. <span class="underline"><span class="underline">[Пример](https://dabeaz.blogspot.com/2010/01/python-gil-visualized.html)</span></span>, да и новая не лучше.
111111

112112

113-
<a id="orgffa42c4"></a>
113+
<a id="orgef919a8"></a>
114114

115115
# Практика
116116

117117
<span class="underline"><span class="underline">[GitHub](https://github.com/pimiento/python_threads_examples/)</span></span>
118118

119119

120-
<a id="orgd9c5aae"></a>
120+
<a id="org704d888"></a>
121121

122122
# Дополнительная литература
123123

@@ -128,7 +128,7 @@ GIL замедляет CPU-bound задачи. Старая реализация
128128
- <span class="underline"><span class="underline">[multiprocessing](https://docs.python.org/3/library/multiprocessing.html)</span></span>
129129

130130

131-
<a id="orge2ecbad"></a>
131+
<a id="org491c26f"></a>
132132

133133
# Что такое Celery?
134134

@@ -137,7 +137,7 @@ GIL замедляет CPU-bound задачи. Старая реализация
137137
*Celery* это брокер задач, который позволяет в фоновом, асинхронном режиме выполнять задачи в отдельных процессах/тредах и/или на других машинах.
138138

139139

140-
<a id="org959a42c"></a>
140+
<a id="org65eca52"></a>
141141

142142
# Практика запуска задач на Celery
143143

@@ -149,16 +149,20 @@ apt install rabbitmq-server
149149
- <span class="underline"><span class="underline">[Можно описывать сложные последовательности](https://docs.celeryq.dev/en/stable/getting-started/next-steps.html#groups)</span></span>
150150

151151

152-
<a id="org6ad8e52"></a>
152+
<a id="org1efd6c7"></a>
153153

154154
# Практика запуска задач на Celery
155155

156156
```shell
157+
celery -A tasks worker --loglevel=INFO
158+
```
157159

160+
```shell
161+
cd celery_example && ./runner.py
158162
```
159163

160164

161-
<a id="orgf8b3195"></a>
165+
<a id="org9bcb22d"></a>
162166

163167
# Что такое map-reduce
164168

@@ -169,7 +173,7 @@ apt install rabbitmq-server
169173
3. Reduce — для каждого ключа выполнить некоторую функцию над всеми данными в этом ключе
170174

171175

172-
<a id="org225a94f"></a>
176+
<a id="orgb4ce801"></a>
173177

174178
# Практика запуска map-reduce на pyspark
175179

@@ -179,7 +183,7 @@ apt install rabbitmq-server
179183
- <span class="underline"><span class="underline">[reducer.py](https://github.com/pimiento/python_threads_examples/blob/main/reducer.py)</span></span>
180184

181185

182-
<a id="org68827c3"></a>
186+
<a id="orgf20c815"></a>
183187

184188
# Практика запуска map-reduce на pyspark
185189

@@ -201,7 +205,7 @@ apt install rabbitmq-server
201205
```
202206

203207

204-
<a id="org48e2a02"></a>
208+
<a id="org3ed99ab"></a>
205209

206210
# Вопросы-ответы
207211

‎webinar.org‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@
7070
- __[[https://docs.celeryq.dev/en/stable/getting-started/next-steps.html#groups][Можно описывать сложные последовательности]]__
7171
* Практика запуска задач на Celery
7272
#+begin_src shell :export code
73-
73+
celery -A tasks worker --loglevel=INFO
74+
#+end_src
75+
#+begin_src shell :export code
76+
cd celery_example && ./runner.py
7477
#+end_src
7578
* Что такое map-reduce
7679
Это процесс решения больших задач при помощи разбивки данных на части и решения задач с частями данных на разных машинах. MapReduce состоит из обязательных шагов:

‎webinar.pdf‎

1.14 KB
Binary file not shown.

0 commit comments

Comments
 (0)