Нужна помощь =)



  • Есть скрипт который выполняет запросы к сервису по API ключу. Запросы конечно же ограничены на сервисе. К примеру на месяц 20к запросов. В силу отсутствия опыта , не знаю как правильно реализовать чтобы можно было устанавливать кол-во запросов каждому пользователю,ну и соответственно с возможностью их увеличения или уменьшения (удаленно).
    Была мысль копать в сторону удаленной бд(mongodb). К примеру создаю юзера в админке БАС, при запуске скрипта идет проверка есть ли такой юзер в удаленной БД, если нет то создает, а если есть то проверяет сколько у него доступных запросов и т.д. Так же я могу заходить и менять в базе значения доступных запросов каждому юзеру.
    Если коряво объяснил или написал чушь, прошу не кидайте камнями. Буду благодарен всем кто поможет советом/ссылкой.



  • можно в файле/файлах хранить. доступ по фтп например для изменения

    p.s. можно в чистом виде, можно в какой нибудь структуре(json, xml). при желании пожно веб интерфейс к изменению этого фала приделать - дел минут на ~15



  • @tet-vivi Привет, не мог бы более подробно обьяснить как это реализовать? Буду благодарен =)



  • @artSamDev said in Нужна помощь =):

    @tet-vivi Привет, не мог бы более подробно обьяснить как это реализовать? Буду благодарен =)

    у пользователей какой индинтификатор используется? ключ к сервису общий или у каждого юзера свой?

    напрмер в json:

    {"user_id_1":{
         "limit":200,
         "current_value":11,
         "ts_unix":1586696426
          },
    "user_id_2":{
         "limit":300,
         "current_value":230,
         "ts_unix":1586666426
          }
    }
    

    {{FILE_CONTENT}}.user_id_1 - даст {"limit":200,"current_value":11,"ts_unix":1586696426 }
    {{FILE_CONTENT}}.user_id_1.limit - даст 200, {{FILE_CONTENT}}.user_id_2.limit - даст 300 (если с синтаксисом не ошибаюсь)

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

    лучше читать файл {{dir}}/user_id_1.txt в переменную [[DATA]], [[DATA]].limit даст 200. после изменения перезаписать данные [[DATA]] в этот же файл

    веб интерфейс можно прикрутить поставив там же опенсервер напимер и написав скрипт
    можно сделать простой скрипт на бас отдельный написать где вводишь id user и другие параметры и он сам внесет изменения в нужный файл
    или вречную подредактировав файл



  • хм, можно взять веб хостинг(есть бесплатные) с базой данных и использовать его вместо mongodb(хотя есть и с mongodb ). там и интерфейс есть. только связывать с басом и другие настройки делать тоже нужно

    под небольшое число записей есть разные сервисы предоставляющие бд сервера. хероку вроде 10к pg или/и 2к mysql записей лимит бесплатны. есть и другие в том числе и чисто на бд спецализирующиеся



  • @artSamDev said in Нужна помощь =):

    Есть скрипт который выполняет запросы к сервису по API ключу. Запросы конечно же ограничены на сервисе. К примеру на месяц 20к запросов. В силу отсутствия опыта , не знаю как правильно реализовать чтобы можно было устанавливать кол-во запросов каждому пользователю,ну и соответственно с возможностью их увеличения или уменьшения (удаленно).
    Была мысль копать в сторону удаленной бд(mongodb). К примеру создаю юзера в админке БАС, при запуске скрипта идет проверка есть ли такой юзер в удаленной БД, если нет то создает, а если есть то проверяет сколько у него доступных запросов и т.д. Так же я могу заходить и менять в базе значения доступных запросов каждому юзеру.
    Если коряво объяснил или написал чушь, прошу не кидайте камнями. Буду благодарен всем кто поможет советом/ссылкой.

    Самое пожалуй простое и бесплатное - это использовать гугл таблицы



  • @Fox у них есть лимит по запросам



  • @UserTrue said in Нужна помощь =):

    @Fox у них есть лимит по запросам

    там в отдельные колонки тайм и текущий счетчик



  • @tet-vivi я говорю у гугл таблиц есть лимит по запросам к их апи и поэтому как микросервис они не подойдут



  • @UserTrue said in Нужна помощь =):

    @Fox у них есть лимит по запросам

    Я слышал про лимиты, но ни разу с ними не сталкивался. Работал у меня одно время скрипт на нескольких серверах и слал все данные в одну таблицу, всё работало как часы



  • @artSamDev Закажите на фрилансе, что бы вам сделали сервер для балансировки. Скрипты пользователей будут обращаться к вашему апи по своим ключам, а сервер если лимит для пользователя не достигнут будет запрашивать данные у внешнего апи. Это очень просто на самом деле



  • @Fox ну он же это делает для пользователей поэтому я бы не рекомендовал такое.



  • @UserTrue
    Не не, это чисто для того чтобы контролировать кол-во запросов каждого юзера. Они не будут видеть сколько у них осталось запросов и прочее.



  • @artSamDev said in Нужна помощь =):

    @UserTrue
    Не не, это чисто для того чтобы контролировать кол-во запросов каждого юзера. Они не будут видеть сколько у них осталось запросов и прочее.

    Ну и чем плох мой вариант?



  • Парни всем спасибо огромное за советы. Теперь хоть понятно в каком направлении двигаться.



  • @UserTrue
    Та я ж не говорю что он плох))) Просто все варианты для меня новые)). Вот к примеру сервер для балансировки слышу впервые. Потому что не было опыта в данном направлении. Очень даже интересный вариант с сервером.



  • @UserTrue said in Нужна помощь =):

    @artSamDev Закажите на фрилансе, что бы вам сделали сервер для балансировки. Скрипты пользователей будут обращаться к вашему апи по своим ключам, а сервер если лимит для пользователя не достигнут будет запрашивать данные у внешнего апи. Это очень просто на самом деле

    Подскажи пожалуйста как правильно составить ТЗ. Загуглил "сервер для балансировки", чет нифига не нашел что это и с чем едят)))



  • @artSamDev Да я вам и так уже считай его написал ))) Программист поймет вас. Так и напишите, что вам нужен сервер на который должны приходить запросы от клиентов и уходить на внешнее апи, ну и ответ потом клиенту отдавать разумеется.



  • @UserTrue
    =) Понял, спасибо большое за помощь



  • в варианте с файлами можно реализовать интерфейс изменения данных(лимиты, добавление/удаления юзеров) прямо в интерфейсе запущеного скрипта


Log in to reply
 

  • 13
  • 11
  • 16
  • 17
  • 8
  • 8
  • 4
  • 8