2017-02-01 9 views
-1

데이터베이스를 검사하고 cron을 사용하지 않고 자동으로 작업을 수행하는 스크립트를 실행하고 싶습니다. 저는 PHP를 프로그래밍 언어로, MySQL을 DBMS로 사용하고 있습니다. 여기 내가 개발하려고하는 기능에 대한 빠른 아이디어를 언급했습니다PHP에서 cron없이 서버에서 응답을 얻을 수있는 방법이 있습니까?

나는 동적 시간에 24 시간의 지속 시간을 사용자에게 알리는 모듈이 있습니다. 즉, 사용자가 하나의 게시물을 게시하고 24 시간 이내에 응답을받지 못하면 자동으로 알림을 받게됩니다. 따라서 한 사용자가 오후 8시 30 분에 게시하면 두 번째 날에 동시에 알림을 받게됩니다. 두 번째 사용자가 오후 7:30에 게시 한 경우 오후 2:30에 오후 7:30에 알림을 받게됩니다.

이제 cron을 이상적으로 설정하는 것이 생각났다. 일정에 따라 스크립트를 실행하는 일종의 스케줄러가 있어야한다. 이 경우 스크립트를 자동으로 실행하기 위해 특정 간격을 예약해야하지만 여기서 간격을 수정하지 않아도됩니다. 나는 cron을 몇 분 안에 설정함으로써 그렇게 할 수 있음을 알고 있지만 서버가 5 ~ 10 분마다 스크립트를 실행할 수있는 옵션을 찾을 수는 없습니다. 그래서 대체 (가능한 경우)를 찾기로 결정하고 PHP 또는 서버에서 스크립트가 자동으로 실행되고 DB를 검색하여 시간을 가져 오는 기술이 있는지 여부를 생각한 다음 24 시간이 지나면 알림을 보냅니다 .

나는 그러나 너무 내가 어떤 방법이 있는지 확실하지 않다

유용하지 않는 것이 내 동료 중 하나에서뿐만 아니라 소켓을 사용하는 제안을 얻었다. 그래서, 여러분이 저를 도와 줄 수 있다면, 제 연구에 도움이 될 것입니다.

미리 감사드립니다.

+0

'서버가 5 ~ 10 분마다 스크립트를 실행할 수있게하는 것이 가능합니다. 왜? 이 스크립트가 확인하고 통지 만하면됩니까? – JustOnUnderMillions

답변

3

당신이 원하는 무엇을 descibing, cronjob입니다.

당신이 내가 24시간에서 알림을 얻기 위해이 사용자 싶다 "뭔가를 얻을 수 있음을 의미합니까"그러나 여기에서 나는 간격의 수정 시간이 없을 것 " 지금부터,하지만 이렇게 작동하지 않습니다 "?
경우 먹으 렴, 다음과 같은 뭔가 해결 될 수있는 논리 문제의 경우 : 당신이 있기 때문에 기술적 인 제한 cronjobs을 할 수없는 경우

$users2notify = getUsersWithAction24hoursAgo(); 
notifyUsers($users2notify); // only notify actual needed users 

, 나는 호스팅 전환하는 것이 좋습니다. cronjobs가 진짜로 잘 일하기 때문에, cronjobs에 대한 적절한 대안이 정말로 없습니다.

추신 : 친구 제안은 그냥 문제를 자바 스크립트로 바꿈으로써 무시하십시오.

0

가장 간단하고 PHP 틱 솔루션을 cron입니다 사용하지만 당신이 정말로 cron 싫어 경우 24 시간으로 요청을 지연하는 nodejs 응용 프로그램을 시작할 수 있습니다 : 당신이 http://localhost:5000/delay?replayTo=http://localhost:80/che‌​ckUser?id=$idOfUserT‌​oCheck에 요청을 보내고 nodejs가 GET 할 것 24 시간 후에 요청; nodejs 애플리케이션을 개발해야하지만 복잡하지는 않습니다.

이 예제에서 5000은 nodejs 응용 프로그램이 수신 대기하는 포트입니다. 사용되지 않는 포트가 될 수 있습니다.