Расписание push-уведомления с firebase и php [duplicate]

Для будущих поисковиков: главный ответ здесь предлагает очистить элемент на каждой итерации, но это все равно оставляет вас с постоянно увеличивающимся набором пустых элементов, которые будут медленно нарастать в памяти:

for event, element in etree.iterparse(path_to_file, tag="BlogPost"):
    for child in element:
        print child.tag, child.text
    element.clear()

^ Это не масштабируемое решение, тем более, что ваш исходный файл становится все больше и больше. Лучшее решение - получить элемент root и очистить , что каждый раз, когда вы загружаете полную запись. Это сохранит использование памяти довольно стабильно (суб-20MB, я бы сказал).

Вот решение, которое не требует поиска определенного тега. Эта функция возвращает генератор, который дает все узлы 1-го ребенка (например, <BlogPost>) под корневым узлом (например, <Database>). Это делается путем записи начала первого тега после корневого узла, затем ожидания соответствующего конечного тега, получения всего элемента, а затем очистки корневого узла.

from lxml import etree

xmlfile = '/path/to/xml/file.xml'

def iterate_xml(xmlfile):
    doc = etree.iterparse(xmlfile, events=('start', 'end'))
    _, root = next(doc)
    start_tag = None
    for event, element in doc:
        if event == 'start' and start_tag is None:
            start_tag = element.tag
        if event == 'end' and element.tag == start_tag:
            yield element
            start_tag = None
            root.clear()
20
задан AL. 16 October 2016 в 03:34
поделиться

2 ответа

Если вы ищете публичный API FCM для запланированного push или параметра полезной нагрузки, где вы можете установить дату push, к сожалению, на данный момент ничего подобного нет.

Вы должны реализовать свой собственный сервер приложений и реализовать запланированное нажатие самостоятельно (также упоминалось здесь здесь ).

15
ответ дан Community 17 August 2018 в 10:53
поделиться
  • 1
    Любое обновление об этом с прошлого года? Кто-нибудь нашел способ установить «Дата поставки»? для уведомления, когда не создаете уведомление через консоль FCM? – Rbar 26 July 2017 в 23:44
  • 2
    @Rbar В настоящий момент обновление отсутствует. Обновит мой ответ, как только будет. – AL. 27 July 2017 в 03:15
  • 3
    Привет @AL. вы нашли какое-либо решение для планирования push-уведомления с использованием API. – YBDevi 8 September 2017 в 05:23
  • 4
    @choopage Нет с момента. К сожалению. – AL. 11 November 2017 в 09:18
  • 5
    @ MusabM.Jafri Нет обновления на данный момент. – AL. 20 June 2018 в 06:29
0
ответ дан jcunhafonte 29 October 2018 в 15:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: