Решение алгоритмов, схемы и классы алгоритмов, построение блок-схем. [администратор рассылки: Лысков Игорь Витальевич (Старший модератор)] Лучшие эксперты в этом разделе
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Есть сервис, на котором одни люди, создают разного рода задания другим людям в Вконтакте.
Например: Один пользователь создал задание другим пользователям - поставить лайк под фотографией, за это он платит N-ю сумму балов (внутренняя валюта сервиса) тем, кто это задание выполнил и получил за это баллы.
Далее, необходимо, что бы тот кто задание выполнил, не отменил свое действие, а если и отменил, то, что бы сервис это заметил, и наказал, принудительным списанием баллов в пользу создателя задания.
Вот в общем-то и суть вопроса: как сделать, что бы сервис мог в течение длительного времени, без существенной нагрузки на сервер, отслеживать нарушителей и наказывать в соответствии с правилами.
Какие есть варианты реализации?
P.S. Сам не програмист, так, что пожалуйста, делитесь мыслями на доступном для дилетанта языке, что бы я потом мог объяснить идею механизма програмисту.
Состояние: Консультация закрыта
Oтветов пока не поступило.
 Лысков Игорь Витальевич
Старший модератор
ID: 7438
# 1
0
отменить редактирование
|
krasnovit74: Все во многом зависит от реализации. Например, если все данные хранятся в базе, то можно добавить еще одно поле, говорящее о том, что задание выполнено. При выполнении задания помечать значением, говорящем о том, что "выполнено". Если от исполнителя приходит запрос на отмену, то проверять значение этого поля. Далее все просто: если поле = "выполнено", то накладать штраф. ===== Каждый выбирает по себе - Щит и латы, посох и заплаты. Меру окончательной расплаты Каждый выбирает для себя.
|
krasnovit74
Посетитель
ID: 400926
# 2
0
отменить редактирование
|
Если от исполнителя приходит запрос на отмену, то проверять значение этого поля.
Тут такой нюанс, что как таковой запрос от исполнителя не приходит. Т.е. Скажем, он поставил в ВК лайк под фотграфией, получил за это баллы, всё. Далее, он может спокойно этот лайк в ВК снять. И задача состоит в том, что бы сервис смог отследить данное действие.
А т.к. пользователей много (десятки тысяч), то и нагрузка на сервер при постоянном мониторинге будет большая. Потому, ищу решение, что бы можно было отслеживать каждого, в течение длительного времени, без существенной нагрузки на сервер.
Моя мысль была такая, что бы сервис вел базу по каждому созданному заданию, в которой есть данные о том, кто это задание выполнил и когда. В дальнейшем, думал, как вариант, сервис бы проверял, скажем раз в неделю эту базу, и сравнивал с данными api Вконтакте на разногласия, и тем самым вычислял бы нарушителей.
Но повторюсь, т.к. я дилетант, это весьма поверхностная идея, потому и пытаюсь найти лучшее решение у более компетентных людей. |
 Лысков Игорь Витальевич
Старший модератор
ID: 7438
# 3
0
отменить редактирование
|
krasnovit74: Опять все упирается в реализацию. Я смутно представляю, как проверяется, что лайк под фото поставлен или снимается? Можно ли привязать какое-то действие (тот же лайк) к чему-то другому (к проверке сервиса) Т.е. хотелось бы сделать, чтобы проверка делалась в момент действия. Тогда постоянные проверки будут ненужны.
Моя мысль была такая, что бы сервис вел базу по каждому созданному заданию, в которой есть данные о том, кто это задание выполнил и когда. И я о том же.
===== Каждый выбирает по себе - Щит и латы, посох и заплаты. Меру окончательной расплаты Каждый выбирает для себя. |
krasnovit74
Посетитель
ID: 400926
# 4
0
отменить редактирование
|
Я смутно представляю, как проверяется, что лайк под фото поставлен или снимается?
Через Api Vkontakte
Можно ли привязать какое-то действие (тот же лайк) к чему-то другому (к проверке сервиса)
Оно так и сделано, когда человек выполняет задание, сервис получает данные о выполненном действии черет Api Vkontakte, таким образом и происходит проверка, выполнено задание или нет. Если выполнено, человек получает за его выполнение баллы, если нет, не получает.
Т.е. хотелось бы сделать, чтобы проверка делалась в момент действия.
Как уже описал выше, проверка как раз и происходит во время выполнения задания.
Но человеку, после выполнения, ничего не мешает взять и снять этот лайк.
Соответственно, мне нужно, что бы данное действие было замечено сервисом.
Как я уже описал выше, сделать базу не проблема, но нужно придумать эффективный механизм, который не будет сильно жрать ресурсы сервиса, и сможет проверять - не снял ли пользователь лайк, поставленный несколько дней/недель/месяцев тому назад.
|
 Лысков Игорь Витальевич
Старший модератор
ID: 7438
# 5
0
отменить редактирование
|
krasnovit74:Как уже описал выше, проверка как раз и происходит во время выполнения задания Раз происходит проверка, то наверняка проверяется есть лайк или снятие лайка. Вот и предлагаю продолжить следить за лайком столько, сколько надо. Если это реально сделать, то было бы самый раз.===== Каждый выбирает по себе - Щит и латы, посох и заплаты. Меру окончательной расплаты Каждый выбирает для себя. |
krasnovit74
Посетитель
ID: 400926
# 6
0
отменить редактирование
|
Вот и предлагаю продолжить следить за лайком столько, сколько надо. Если это реально сделать, то было бы самый раз.
Чисто технически, это сделать реально, но как я уже пояснил, пользователей десятки тысяч, самих заданий, с такими вот лайками еще больше, и если сервис будет постоянно мониторить всю эту кучу, то сервер просто рухнет.
Но я рад, что Вы пытаетесь вникнуть в суть. Думаю, Вы уже близки к понимаю, того, что мне нужно.
Как Вы видите, реализовать мониторинг 24\7 невозможно, потому, я ищу альтернативу, которая позволила бы замечать нарушения (отмену поставленного лайка), пусть и не сразу, и наказывать.
Как вариант, я думал, может привязать проверку , не отменен ли лайк, к какому-то событию. Например, вход (логин) пользователя на сервис, или при попытке потратить пользователем заработанные баллы при создании задания. Или быть может еще добавить сюда какое-то расписание, не знаю как будет лучше, затем сюда и пришел. |
 Лысков Игорь Витальевич
Старший модератор
ID: 7438
# 7
0
отменить редактирование
|
krasnovit74:если сервис будет постоянно мониторить всю эту кучу Я не предлагаю "мониторить эту кучу", а реагировать только в момент лайка/отмены от лайка или каких-то других заданий. Загрузки на сервер никакой! Человек нажимает, сервис ловит нажатие и принимает решение, что делать: засчитать, отказать , проигнорировать или наказать... Я бы думал именно в таком направлении...===== Каждый выбирает по себе - Щит и латы, посох и заплаты. Меру окончательной расплаты Каждый выбирает для себя.
|
krasnovit74
Посетитель
ID: 400926
# 8
0
отменить редактирование
|
Я не предлагаю "мониторить эту кучу", а реагировать только в момент лайка/отмены от лайка или каких-то других заданий. Загрузки на сервер никакой! Человек нажимает, сервис ловит нажатие и принимает решение, что делать: засчитать, отказать , проигнорировать или наказать... Я бы думал именно в таком направлении...
Так сделать не получится. Что бы сервис поймал отмену лайка, он должен сделать запрос на api Vkontakte, апи даст ответ, была ли отмена, и на основе ответа, сервис принимает решение. Потому, сервис должен периодически повторять проверку. Но, таких вот лайков, а следовательно и запросов в общей сложности очень и очень много. Например, 100 пользователей, совершающих 100 лайков в течение месяца, это 300 000 запросов от сервиса к api vkоntakte, и это только лайки, и только на примере 100 постоянных пользователей. И количество только растет. От сюда и вся сложность создания механизма проверки. |
 Лысков Игорь Витальевич
Старший модератор
ID: 7438
# 9
0
отменить редактирование
|
krasnovit74: Мои советы на этом закончились. Поговорите еще со своим программистом. Может у него есть какие-то мысли на этот счет. Все-таки он знает систему изнутри. ===== Каждый выбирает по себе - Щит и латы, посох и заплаты. Меру окончательной расплаты Каждый выбирает для себя. |
krasnovit74
Посетитель
ID: 400926
# 10
0
отменить редактирование
|
Мои советы на этом закончились. Поговорите еще со своим программистом. Может у него есть какие-то мысли на этот счет. Все-таки он знает систему изнутри.
Благодарю, за уделенное мне время. | |
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему. Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.
|