Salvando o ponto de verificação da linha MySQL na tabela?
Pergunta
Estou tendo um pequeno problema e tenho certeza de que há uma maneira mais conveniente/mais simples de alcançar a solução, mas todas as pesquisas são lançadas em espaços em branco no momento!
Eu tenho um db MySQL que é atualizado regularmente pela página PHP [através de um trabalho de cron] Isso adiciona ou exclui entradas conforme apropriado.
Meu problema é que eu também preciso verificar se algum detalhe [ou seja, o número de telefone ou similar] para a entrada mudou, mas fazer isso em cada chamada não é possível [não apenas parece que me parece um exagero, mas estou Restrito por um limite de chamada da API de terceiros] além disso, isso não é informação crítica.
Então, eu estava achando que seria melhor verificar uma entrada por chamada de página e iterar através das linhas/inteiras a cada chamada de página sucessiva.
Qual seria a melhor maneira de fazer isso, ou seja, acompanhando qual entrada/linha na tabela que deve ser verificada a seguir?
Eu tenho duas idéias de como implementar isso:
1) O ID da linha atual pode ser salvo em um arquivo no servidor [certamente não é a melhor maneira
2) Um campo booleano extra [verificação] é adicionado à tabela, definido como true na primeira entrada e false para todos os outros. Então, em cada página, ligue para isso; Encontra 'onde check = true' executa a verificação de atualização nesta linha, 'define check = false' 'set [a próxima linha] check = true'
Si é a melhor maneira de fazer isso, ou alguém tem uma sugestão melhor?
desde já, obrigado !
.k
PS Desculpe pelo título
Nenhuma solução correta
Outras dicas
Um fluxo de trabalho seqüencial representa uma série de etapas. As etapas são realizadas uma após a outra até que a última atividade seja concluída. Os fluxos de trabalho seqüenciais são sempre estritamente sequenciais em sua execução. Porque eles podem receber eventos externos e incluir fluxos lógicos paralelos, a ordem exata da execução pode variar. A ilustração a seguir mostra um exemplo de um fluxo de trabalho seqüencial.
O processo seqüencial ficará assim:
Um fluxo de trabalho da máquina de estado representa um conjunto de estados, transições e ações. Os passos em um fluxo de trabalho da máquina de estado são executados de forma assíncrona. Isso significa que eles não são necessariamente realizados um após o outro, mas são acionados por ações e estados. Um estado é atribuído como estado de início e, em seguida, com base em um evento, uma transição é feita para outro estado. A máquina de estado pode ter um estado final que determina o final do fluxo de trabalho. O diagrama a seguir mostra um exemplo de um fluxo de trabalho de máquina de estado.
O processo de máquina de estado será:
Links referenciados
https://www.nothingbutsharepoint.com/sites/eusp/pages/sharepoint-state-machine-or-sequencial-workflows-what-is-the-future-of-Business-Processes. aspx
Você pode armazenar o registro de data e hora em que uma linha é atualizada implicitamente usando na atualização current_timestamp [http://dev.mysql.com/doc/refman/5.0/en/timestamp.html ou explicitamente na sua atualização SQL. Então, tudo o que você precisa fazer é selecionar a (s) linha (s) com o menor registro de data e hora (usando a ordem e limite) e você terá a próxima linha para processar. Contanto que você garanta que o registro de data e hora seja atualizado a cada vez.
Por exemplo, diga que você usou o campo Last_polled_on Timestamp para armazenar o tempo em que você pesquisou uma linha. Sua inserção parece:
INSERT INTO table (..., last_polled_on) VALUES (..., NOW());
Sua atualização se parece:
UPDATE table SET ..., last_polled_on = NOW() WHERE ...;
E sua seleção para a próxima linha para fazer a pesquisa parece:
SELECT ... FROM table ORDER BY last_polled_on LIMIT 1;