2013-08-14 2 views
2

사용자 로그인시 백그라운드에서 프로세스를 실행하고 싶습니다. 그래서 로그인 리스너에서 프로세스를 생성합니다.이벤트 리스너에서 컨트롤러/액션 호출

여기 내 코드입니다.

public function onLogin(InteractiveLoginEvent $event) 
    { 
     $user = $event->getAuthenticationToken()->getUser(); 

     if($user) 
     { 
     $userid= $user->getId(); 
     echo $userid; 
     $process = new Process('php d:wamp/www/jobologic/app/console JJJJ:RRRR'." ".$userid); 
     $process->start(); 

     } 
    } 

백그라운드에서 프로세스 시작 이후. 사용자가 웹 사이트의 홈페이지를 보길 원합니다. $ process-> start() 함수 다음에 무엇을해야합니까? 폼 로그인을 사용하는 경우

+1

리디렉션 모두 –

+0

당신은 더 정확한 수 있을까요? 나는 정말로 신참이다. 고마워. @ User016 –

답변

3

, 당신은 기본 대상 경로를 구성하고 다음과 같은 구성으로 강제 수 :

firewalls: 
    myfirewall: 
     # ... 
     form_login: 
      # ... 
      always_use_default_target_path: true 
      default_target_path:   /

구성 참조 : 홈페이지 ... 그게 전부에 http://symfony.com/doc/current/reference/configuration/security.html

+0

다른 문제는 내가 이와 같이 작성할 때 홈페이지로 리디렉션된다는 것입니다. 그러나 프로세스는 백그라운드에서 실행되지 않습니다. 아이디어가 있습니까? 도와 주셔서 감사합니다. –

+1

메인 프로세스에서 분리되지 않을 수도 있습니다. 따라서 메인 요청이 끝나면 시작한 프로세스가 종료됩니다. 이것은 할 공통점이 아닙니다. 비동기 프로세스가 필요하면 메시지/작업 대기열을 사용하십시오. –

+0

고맙습니다. –

관련 문제