Как сделать умный алгоритм просмотра проектов через API Asana?
Имеется некая система автоматического импорта комментариев к задачам в Asanе
Аккаунт в Asana - free, потому воспользоваться запросами поиска (seacrh) не удастся.
Имеется порядка 160 проектов в Asane.
Каждый из которых проверяет система импорта со скоростью 1 проект через каждые 3 минуты.
В итоге полная проверка всех 160 проектов занимает 8 часов.
Среди этих 160 проектов - есть проекты где комментарии не появляются вообще, те в которых появляются часто и средне часто. При этом ситуация меняется в динамике.
Как бы так реализовать систему, которая адаптировалась бы под текущую ситуацию.
К примеру если в проекте №11 обнаружены комментарии, то его нужно почаще проверять.
В тоже время если за последний период в проекте №20 комментариев не обнаружено - то его можно проверять не более 1 раза в сутки. И чтобы система динамически подстраивалась под частоту комментариев каждого проекта и соотв. задавала бы промежутки проверки их.
Сама проверка проекта не параллельна, в один момент времени (период 3 минуты) проверяется один проект.
Леонид, прочитал, ни о чем. Нужна конкретика. Вот есть такие запросы, они выполняются столько времени и т.д. Что бв понять что именно мы оптимизируем. Как Вы используете их api,там много вариантов.
есть 160 проектов в Asana, в каждом проекте есть задачи, у задач могут быть комментарии
Задача: найти комментарии содержащие определенный текст.
Как работает моя система:
за один запуск она:
- запрашивает все незакрытые (incomplete) задачи по одному проекту (1 запрос или более в зависимости от кол-ва задач)
- получает по каждой задаче комментарии (1 запрос или более в зависимости от кол-ва комментариев Х кол-во полученных выше задач)
- просматривает каждый полученный комментарий на предмет вхождения определенного текста
- сохраняет комментарии у себя если они содержат нужный текст
один запуск происходит в течении 3х минут, дальше идет следующий, за один запуск обрабатывается 1 проект...
Леонид, Почему нельзя запускать чаще?
B если возможно, говорите терминами из api asana (project, Storie и т.д.). Там нет "задач" и "комментариев", собственно и просил пример запроса, что бы понять о каких сущностях речь
Максим Тимофеев, каждую минуту? это даст увеличение скорости в 3 раза, но всё равно не фонтан получается... 160 минут номинально на обновление 160 проектов - это лучше чем сейчас но )))
Кроме того у Asana написано что есть некие ограничения по использованию их API - потому я решил изначально не сильно так их продалбливать ) Хотя может я и перестраховываюсь от возможных блокировок с их стороны
Просмотр одного проекта может длится и 1 минуту целиком - по разному бывает, а может и меньше по идее...
вы предлагаете с таким интервалом настроить CRON-задание на сервере для запуска php-скрипта?
или в рамках одного запуска проверять несколько проектов?
Все проекты брать не надо, надо смотреть только те, у которых было событие изменения за последние 6 секунд.
ха, я бы был рад иметь такую возможность, но как с помощью Asana такое сделать? Там есть события - но они опять же привязаны к проектам, потому это мне ничего особо не даёт..
Где вы там в Asana API увидели возможность определять последние изменения за 6 секунд?
надо оптимизировать
ну эта оптимизация просто приведет к увеличению кол-ва запросо к API Asana в единицу времени - что в итоге может повлечь санкции к моему ip с их стороны...