2012-10-06 5 views
3

Je viens de rencontrer un problème avec l'écriture de données dans Google Cloud Storage en utilisant AppEngine FileService.Service de fichiers Google closeFinally() timeout

Le problème est lié au délai d'attente que je pense. J'ai créé un nouveau fichier GS et y écris des données à l'aide de tâches. Chaque tâche ferme FileWriteChannel avec close(). Mais closeFinally() est appelé dans environ 2 heures après la dernière écriture (il est requis par mon DataFlow). Donc, je ne vois aucun fichier dans GS.

Est-ce qu'il y a un timeout entre la dernière écriture et closeFinally()?

+0

Je ne comprends pas parfaitement cette question. Vous attendez-vous à voir le fichier dans GS avant d'appeler closeFinally()? Prévoyez-vous un appel automatique à closeFinally() après un timeout? – fejta

+0

Non. La question est combien de temps puis-je maintenir AppEngineFile fermé sans closeFinally. Je ne m'attends pas à une fermeture automatique. Je veux juste savoir si je peux fermer le dossier et continuer à faire n'importe quoi avec lui après plusieurs heures. –

Répondre

1

Il n'y a pas de délai entre les appels à close() et closeFinally() mais vous devez finaliser le téléchargement avec un appel à closeFinally() dans les quelques jours après le début du téléchargement avec createNewGSFile().

+1

Salut @fejta, Merci pour votre réponse ci-dessus. Je cours dans un problème potentiellement lié où un appel à closeFinally() entraîne une FileServiceImpl.translateException (FileServiceImpl.java:621). L'appel closeFinally() est effectué environ 15 minutes après le createNewGSFile(). Je suis actuellement sur GAE SDK 1.8.2 (sera mise à niveau dans le futur), mais j'ai besoin de résoudre ce problème dès que possible pour un client actuel. En supposant que cela pourrait être un délai d'attente, mais avez-vous d'autres idées? Merci! – djpark