freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 28 мар 2024 19:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 12 ноя 2015 18:52 

Зарегистрирован: 24 дек 2014 10:40
Сообщения: 85
Здравствуйте.

Топик больше информативный, чем вопросительный.
Для меня это было неожиданностью, вот решил поделиться...

Ну так вот:
У меня вся логика описана в питоновском скрипте, который запускается на любой входящий и исходящий звонок и дальше уже делает определенные вещи.
И вот, после определенного момента я начал замечать какую то ерунду в работе диалплана. Обложил весь питоновский скрипт консольными логами и что же я вижу: в процессе работы переменная изменяет свое значение.... Причем в том месте где переопределения нет.

В итоге оказалось что так как питоновские скрипты запускает один процесс, и если использовать глобальное определение переменных в функциях, то второй запустившийся скрипт изменит ее значение.

Пример:

Код:
import freeswitch
import time

a=time.time()

def handler(session, args):
    global a
    while true:
        freeswitch.consoleLog("info", "--> {0}: {1}\n".format(str(session.uuid),str(a)))
        time.sleep(0.5)

при первом запуске(звонке) на экран будет выводиться дата, которая получена в момент начала звонка. А при втором звонке, при условии что первый еще продолжается, консольный лог по обоим звонкам будет отображать одно и то же значение времени. Т.е. значение присвоенное во втором звонке.

Эту особенность можно использовать как временное хранилище, к примеру для определения количества активных каналов. Да вообще чего душе угодно... Если не страшно.

Как говориться, моя "грабелька" для Вас от всей души :)

_________________
Если бы я был админом одной организации, я бы сделал все по другому.....


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB