mysql삽입될 때 응용프로그램실행하기

bigmsg의 이미지


안녕하세요? 리눅스를 배우기 시작한지 1달이 되어 가는 것 같습니다.
사이트를 하나 만드는 작업이 많아져서 리눅스 서버를 임대하게 되어 현재 계속
공부,사이트 작업중에 있습니다.

우선 제가 하고자 하는 일은...
특별한 SMS전송입니다.

제가 SMS-MO서비스를 받고 있습니다.
(고객이 핸드폰단말기로 특정한 013-****-****번호로 문자를 보내면 제 mysql db에 문자내용들이 저장이 되는 서비스)

이 sms-mo서비스로 고객에게 특별한 서비스를 제공할려고 합니다.
서비스 프로세스과정은 아래와 같습니다.

01.고객이 mo서비스번호로 sms전송 (고객단말기-> 013-****-****(sms-mo서비스번호))
02.sms-mo서비스 db에 고객sms수신(삽입)
*02-1.응용프로그램호출(sms-mo테이블에 데이터가 들어온 후(db삽입 이벤트) -> 개발한 응용프로그램 호출)
03.응용프로그램:고객인증(발신자 휴대폰번호로 회원db조회후 고객인증)
04.응용프로그램:문자내용분석후 -> 고객에게 다시 sms전송

이 과정에서
01번(고객),
02번(sms-mo서비스제공업체),
03번(자체개발,linux-mysql),04번(자체개발,linux-mysql) 자체개발입니다.

원하는 것은 sms-mo서비스업체에서 특정table에 데이터를 삽입하면
삽입이벤트를 알아차려서 03번,04번과정을 처리하는 응용프로그램을 호출하는 것입니다.
(sms-mo서비스업체에서 어떻게 db에 삽입해준다는 과정은 전혀알 수 없음)

03번,04번과정의 응용프로그램은 제쳐두고
*02-1번이 고민거리입니다.

sms-mo테이블에 데이터가 삽입될때마다(insert이벤트발생)
그걸 어떻게 알아차려서 어떻게 응용프로그램을 호출하느냐입니다.

제가 mysql-5.0.2(현재 사용중인 버전)에 조금 한가닥 희망을 걸고 있는게 있습니다.

트리거(Trigger)입니다. mysql 특정테이블에 insert이벤트 발생시
어떤동작을 할 수 있늘 걸로 알고 있습니다.
on insert before,on insert after...

######## 질문 ##############
01.혹시 이걸(트리거)로 해당 3번,4번과정을 처리하는 응용프로그램을 호출할 수는 없을까요?
02.아니면... mysql 특정테이블에 insert이벤트을 감지하는 데몬(?)을 만들려면 어떤 방법이 있을까요?
(insert이벤트를 감지하는 데몬을 간단히 프로그래밍하려면 어떤 방법이 있을까요? C,C++,쉘프로그램(?))

03.insert이벤트를 감지하는 것이 어렵다면...
일정한 간격으로 sms-mo테이블을 읽어서 3번,4번을 처리하는 응용프로그램을 쉽게 제작하려면
어떤 방법을 사용하는 것이 좋을까요?(c,c++,쉘프로그래밍(?))

좀 상세히 설명하려니 글이 길어졌네요 ^^
읽어주셔서 감사합니다. 의견을 보내주시면 감사하겠습니다.

dormael의 이미지

02번을 직접 하시는게 아니라면 트리거도 좋겠지만
row를 감시하고 있는 데몬이 특정시간 간격으로 변화(row의 갯수나 아예 새로 넣어진 데이터를 가져와서, 물론 새로 넣어진것과 처리된 것의 차이를 구분할 수 있는 조건 필요)를 감지해서 프로그램을 실행시키는게 낫지 않을까요?
dbms가 바뀌어도 실행이 가능할 테니까요.

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

bigmsg의 이미지

답변주셔서 감사합니다. ^^
제가 어제 gcc에 대한 개념이 조금 섰습니다.
그래서 c/gcc/mysql.h로 도전해볼 수도 있겠구나! 라고 한가닥 희망을 건졌습니다.
아무래도 c/gcc/mysql.h라면 데몬도 만들수 있겠구나 라고요.

사실 데몬이 뭔지도 확실한 개념도 없지만...

리눅스!! 정말 도전입니다. -.-;
행복한 주말이 되십시오. ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.