Огляд скриптовых мов - Python
Приклади збереження даних Приклади збереження данихУ порівнянні з pickle або YAML для ініціалізації роботи з ZODB потрібно написати на парі рядків програмного коду більше, але як тільки сховище...
Контактні дані Київ, Мясницкая вул., 35
Телефон: +38 (044) 997 - 93 - 19
Факс: +38 (044) 999 - 99 - 91
Модуль Processing
Ми могли б піти далі й перевіряти час останньої зміни файлів, але, дотримуючись принципу збереження максимальної простоти прикладів, ми подивимося, як у цьому циклі перевіряється очікувана подія і як, у випадку його появи, викликається метод обробки. Цей модуль легко можна перетворити в більше універсальний інструмент, але поки в прикладі 10.22 жорстко визначені каталоги, які будуть синхронізуватися із затримкою за допомогою команди rsync -av delete, якщо між ними будуть виявлені розходження.

Уважні читачі можуть помітити, що строго говорячи, затримка тут не є строго необхідної, і це дійсно так. Але як би те не було, затримка може дати додаткову перевагу. Якщо додати затримку, скажемо, на 5 секунд, можна було б перервати виконання потоку у випадку настання іншої події, наприклад, у випадку несподіваного видалення основного каталогу. Затримка, реалізована у вигляді потоку, являє собою чудовий механізм створення операцій з відкладеним виконанням, які можна скасувати

Процеси: Потоки - це не єдиний спосіб використання многозадачности в мові Python. У дійсності процеси мають деякі переваги перед потоками, тому що вони, на відміну від потоків у мові Python, можуть виконуватися на різних процесорах. Насправді, через наявність глобального блокування інтерпретатора (Global Interpreter Lock, GIL) у кожний момент часу може виконуватися тільки один потік керування й тільки на одному процесорі. Тому для рішення "великовагових" завдань мовою Python потоки є не кращим вибором. У таких випадках обробку краще провадити в різних процесах.

Процеси будуть кращим вибором, якщо для рішення завдання буде потрібно задіяти кілька процесорів. Крім того, існує безліч бібліотек, які просто не можуть працювати з потоками керування. Наприклад, що текет реалізація бібліотеки Net-SNMP для мови Python не є асинхронної, тому при необхідності виконання паралельної обробки варто використовувати розгалуження процесів. Потоки в додатку спільно використовують ту саму область пам'яті, у той час як процеси повністю незалежні друг від друга й для організації взаємодії із процесом потрібно прикласти більше зусиль.

Обмін інформацією із процесами за допомогою каналів може виявитися непростою справою, але, на щастя, існує бібліотека processing, що ми тут докладно розглянемо. Ідуть розмови про включення бібліотеки processing у стандартну бібліотеку мови Python, тому буде зовсім незайвим познайомитися з нею ближче. Раніше ми згадували альтернативний метод створення безлічі процесів, заснована на використанні функції subprocess. Popen.
Служба аутентификации Служба аутентификацииОдне із самих удалих визначень, з якими нам доводилося зіштовхуватися, приводиться у Википедии: "прикладний протокол, що дозволяє звертатися до служби каталогів, що працює поверх протоколу TCP/IP". Як приклад...
Веб додатка Веб додаткаОдне з поліпшень, яке можна було б внести в цей додаток, -це реалізувати сортування в порядку, зворотному поточний. Зробити це досить просто, але ми залишимо реалізацію цієї можливості читачам. Як ще одне поліпшення...
Запуск сценарію Запуск сценаріюЦе в точності відповідає нашим очікуванням. Тепер спочатку спробуємо запустити сценарій, що додає новий запис, а потім знову запустимо сценарій, що витягає дані. Цей приклад ідентичний попередньому прикладу, де використовувався метод store,...
Створення звітів Створення звітівКрім того, ми могли б розширити цей сценарій і відшукувати запису з обсягом використання 80 відсотків, 70 відсотків і видавати попередження по досягненні цих рівнів. Такий сценарій легко можна було б об'єднати, наприклад, с...
 
(c) Copyright