So let's look at another feature that is needed
to build scalable applications, task queues. So why do
we need task queues? Well at this time this
picture should be no surprise to you. Our dear
users accessing our application from various devices. And our
application for turning the response. Technically this response must
be returned within 60 seconds from the request. But
that's a long time. We've talked about the importance
about returning a response as quickly as possible to
our dear users. And we don't want them to
wait, even for seconds, right? And certainly not 60
seconds. You want to deliver that response as quickly as
possible. But let's say that the user activity triggers
something big to happen. For example, the user adds a
new conference and as a consequence of that 10,000
emails should be sent out to notify other users about
this conference. First of all, that's not possible within
60 seconds. And secondly, you certainly don't want the
poor user that just registered the conference to wait
for this to happen. Remember, the screen update depends on
your response so even seconds are crucial to keep
your application responsive. Come to the rescue are task
queues. This is exactly the problem task queues solve.
And it may not be emails triggering the need for
this, it could be something else. For example, an
image needs to be analyzed or a video needs to
be re-encoded. Many things that are not needed to
complete the request for the user, could use task queues
هيا نتعرف على ميزة أخرى مطلوبة
لإنشاء تطبيقات قابلة للتحجيم ألا وهي قوائم انتظار المهام. لماذا
نحتاج إلى قوائم انتظار المهام؟ حسنًا، لا يجب أن
تمثل هذه الصورة هذه المرة مفاجأة لكم. يصل المستخدمون
إلى تطبيقنا من أجهزة متنوعة. ويرجع
التطبيق الاستجابة. من الناحية الفنية، يلزم إرجاع
الاستجابة في غضون 60 ثانية من إرسال الطلب. ولكن
هذا وقت طويل. تحدثنا عن أهمية
إرجاع الاستجابة بأسرع وقت ممكن
إلى المستخدمين الأعزاء. ولا نريدهم كذلك
ينتظرون حتى لثوانٍ، أليس كذلك؟ وبالتأكيد ليس لستين
ثانية. تريدون توصيل الاستجابة بأسرع وقت
ممكن. ولكن لنقل مثلاً أن نشاط المستخدم أدى
إلى حدوث شيء كبير. على سبيل المثال، ينظم المستخدم
مؤتمرًا جديدًا، ويترتب على ذلك ضرورة إرسال 10 آلاف رسالة عبر
البريد الإلكتروني لإخطار المستخدمين الآخرين
بشأن هذا المؤتمر. في البداية، يتعذر فعل هذا في غضون
60 ثانية. وثانيًا، من المؤكد أنكم لا تريدون
أن ينتظر المستخدم الذي قام بتسجيل المؤتمر
لحين حدوث ذلك. تذكروا أن تحديث الشاشة يتوقف
على استجابتكم، لذا فإن الثواني مهمة للمحافظة
على استجابة التطبيق. تمثل قوائم انتظار المهام
.الملجأ الوحيد لنا. فهذه هي المشكلة التي تحلها قوائم انتظار المهام
وقد لا تكون رسائل البريد الإلكتروني هي التي تدفعنا
،إلى هذا، فيمكن أن يكون أي شيء آخر. على سبيل المثال
صورة مطلوب تحليلها أو فيديو مطلوب
إعادة ترميزه. ثمة أشياء عديدة لا نحتاجها
لإتمام طلب المستخدم ويمكن أن تستخدم قوائم انتظار المهام
Veamos otra característica necesaria
para crear aplicaciones escalables...
Colas de tareas. ¿Por qué las necesitamos?
Bueno, en este momento
esta imagen no debería sorprenderte.
Son nuestros usuarios al acceder a nuestra aplicación de App Engine
desde varios dispositivos,
y nuestra aplicación al dar respuesta.
Técnicamente, esta respuesta debe darse
en 60 segundos a partir de la solicitud.
Pero eso es mucho tiempo. Hemos hablado de la importancia
de dar una respuesta tan rápido como sea posible
a nuestros estimados usuarios. Y no queremos que esperen
ni siquiera unos segundos, ¿verdad? Menos aún 60 segundos.
Debemos dar respuesta tan pronto como sea posible.
Pero supongamos que la actividad de los usuarios
desencadena algo grande.
Por ejemplo, el usuario agrega una nueva conferencia
y en consecuencia,
es necesario enviar 10,000 correos electrónicos
para notificar a otros usuarios sobre esta conferencia.
Primero que nada, hacer eso es imposible
en menos de 60 segundos. Segundo, no querrás
que el pobre usuario que acaba registrarse a la conferencia
espere a que esto ocurra.
Recuerda, la actualización de pantalla depende de tu respuesta,
así que incluso los segundos son cruciales
para que tu aplicación siga siendo responsiva.
Las colas de tareas vienen al rescate.
Es exactamente el tipo de problema que resuelven.
Y quizá no sean correos los que detonan esta necesidad.
Podría ser algo más. Por ejemplo,
una imagen que debe ser analizada,
o un video que necesita recodificarse.
Muchas cosas innecesarias para completar la solicitud
del usuario pueden usar colas de tareas.
スケーラブルなアプリの構築に必要な タスクキューについてお話しします
なぜタスクキューは必要でしょうか？ もうこの図は珍しくないでしょう
ユーザはApp Engineのアプリに 様々なデバイスからアクセスします
それに対しアプリはレスポンスを返します
ユーザのリクエストに対して レスポンスは60秒以内に返さなくてはなりません
前にお話ししたとおりユーザに できるだけ早くレスポンスを返すことが重要です
ユーザを数秒でも待たせてはいけません もちろん60秒は長すぎます
レスポンスはできるだけ早い方がいいはずです
ユーザの操作で大きな処理が必要になったとします
例えばユーザが新しい会議を追加した結果
1万件もの通知メールが送信されるとします
この処理は60秒で完了しませんし
会議を追加したユーザを処理が完了するまで 待たせるようなこともしたくないでしょう
画面の更新はアプリのレスポンスに依存するので たった数秒でも命取りになります
そこで役立つのがタスクキューで この種の問題を解決できます
タスクキューが必要になるのは メール送信だけではありません
例えばイメージ解析や ビデオの再エンコードなどです
完了する必要のないリクエストには タスクキューを使えばいいのです
Vamos ver outro recurso necessário
para criar aplicativos escaláveis: filas de tarefas. Por que
precisamos de filas de tarefas? Agora essa
imagem já não é mais nenhuma novidade para você. Nossos queridos
usuários acessando o aplicativo em diversos dispositivos. E o
aplicativo retornando a resposta. Tecnicamente, essa resposta deve
ser retornada dentro de 60 segundos após a requisição. Mas
isso é muito tempo. Já falamos sobre a importância
de retornar a resposta o mais rápido possível para
nossos queridos usuários. E não queremos que eles
esperem nem poucos segundos, certo? Quem dirá 60
segundos. Queremos enviar a resposta o mais rápido
possível. No entanto, digamos que a atividade do usuário acione
um evento grande. Por exemplo, o usuário adiciona uma
conferência nova e, consequentemente, 10 mil
emails devem ser enviados para comunicar outros usuários sobre
a conferência. Primeiro, não é possível fazer isso em
60 segundos. Segundo, é certo que você não quer que o
coitado do usuário que acabou de registrar a conferência espere
isso acontecer. Lembre-se de que a atualização da tela depende da
resposta. Portanto, até mesmo os segundos são cruciais para manter
o aplicativo responsivo. Para resolver isso, temos as
filas de tarefas. É exatamente esse tipo de problema que as filas de tarefas solucionam.
E não é só o envio de emails que necessita delas.
Pode ser qualquer coisa. Por exemplo, uma
imagem que deve ser analisada ou um vídeo que precisa
ser recodificado. Muitas coisas que não são necessárias para
concluir a requisição do usuário podem usar as filas de tarefas.
现在我们来看一看构建可缩放应用
所需的另一个功能 任务队列 为什么我们
需要任务队列？现在 此图片不会
给你带来任何惊喜 我们尊敬的用户会
通过各种设备访问你的应用 而我们的应用
将返回响应 从技术上讲 此响应必须在
请求之后的 60 秒内返回 但是
时间有点长 我们已经讨论了将响应
尽快返回给我们尊敬的用户
的重要性 我们不希望用户等待
哪怕只是几秒钟 对吧？当然不可能
会是 60 秒 你希望尽快
交付响应 但有可能是用户活动
触发了大事件 例如 用户添加
新会议 因此
需要发送 10,000 封邮件
来通知其他用户召开此会议 首先 这是不可能
在 60 秒内完成的 其次 你当然不希望
刚刚注册会议的可怜用户
碰到这种情况 请记住 屏幕更新频率取决于
你的响应速度 因此 对于你的应用响应速度来说
几秒钟也是至关重要的 赶来援救的就是任务
队列 这就是任务队列解决的问题
除了电子邮件 也有可能是
其他事情触发了任务队列 例如
需要分析的图像或需要
重新编码的视频 并非完成用户请求所需
的事情才可以使用任务队列