{"id":11309,"date":"2018-09-25T08:46:25","date_gmt":"2018-09-25T03:16:25","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/"},"modified":"2018-09-25T08:46:25","modified_gmt":"2018-09-25T03:16:25","slug":"solved-csv-file-generation-in-every-2-hours-using-java","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/","title":{"rendered":"[Solved] CSV file generation in every 2 hours using Java"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-52484401\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"52484401\" data-parentid=\"52477958\" data-score=\"3\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<blockquote>\n<p>I am not using ScheduledExecutorService. I want simple way to solve this problem.<\/p>\n<\/blockquote>\n<p>You already have your answer: <strong>The Executors framework was added to Java to be that simple way<\/strong> to solve this problem. Executors abstract away the tricky messy details of handling background tasks and threading.<\/p>\n<p>Your should be using a <code>ScheduledExecutorService<\/code> for your purpose.<\/p>\n<p>Executors may seem daunting at first glance, but their use in practice is quite simple. Read the Oracle Tutorial. Then look at code examples in Stack Overflow and other blogs etc.<\/p>\n<p>Tip: Search Stack Overflow using an external search engine such as DuckDuckGo\/Bing\/Google with the <code>site:StackOverflow.com<\/code> criterion. The built-in search feature in Stack Overflow is anemic and is biased towards Questions rather than Answers.<\/p>\n<p>Define your executor service, backed by a thread pool.<\/p>\n<pre><code>ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();\n<\/code><\/pre>\n<p>Define your task to be run as a <code>Runnable<\/code>.<\/p>\n<pre><code>Runnable task = new Runnable() {\n    @Override\n    public void run () {\n        \u2026 stuff to do goes here\n    }\n}\n<\/code><\/pre>\n<p>Pass the <code>Runnable<\/code> object to the executor service. Tell it how often to run. You also pass an initial delay; here we pass zero to begin immediately.<\/p>\n<pre><code>scheduledExecutorService.scheduleAtFixedRate( task , 0 , 2 , TimeUnit.HOURS ); \n<\/code><\/pre>\n<hr>\n<p>Tip: Two critical things to know about using <code>ScheduledExecutorService<\/code> (SES):<\/p>\n<ul>\n<li>Always gracefully shutdown the SES when no longer needed or when your app exits. Otherwise the threadpool may survive and continue working, like a zombie.<\/li>\n<li>Always catch all Exceptions, and perhaps Errors, in the task being submitted to the SES. If any exception or error bubbles up to reach the SES, all further work by the SES creases. The stoppage is silent, no warning, no logs.<\/li>\n<\/ul>\n<p>So modify the <code>Runnable<\/code> seen above.<\/p>\n<pre><code>Runnable task = new Runnable() {\n    @Override\n    public void run () {\n        try {\n            \u2026 stuff to do goes here\n        } catch ( Exception e ) {\n            \u2026 Handle any unexpected exceptions bubbling up to avoid silently killing your executor service. \n        }\n    }\n}\n<\/code><\/pre>\n<hr>\n<p>Tip: Never use the terrible old date-time classes such as <code>Date<\/code>, <code>Calendar<\/code>, <code>SimpleDateFormat<\/code>. They were supplanted years ago by the modern <em>java.time<\/em> classes.<\/p>\n<hr>\n<p>Tip: When writing a moment in a file name, follow the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/en.m.wikipedia.org\/wiki\/ISO_8601\">ISO 8601<\/a> standard for representing date-time values as text.<\/p>\n<p>These formats are used by default in the <em>java.time<\/em> classes when parsing or generating strings.<\/p>\n<p>For file names you may want to use the alternative \u201cbasic\u201d formats defined in the standard. <em>Basic<\/em> means the use of delimiters is minimized.<\/p>\n<p>Be sure to avoid backward slash, forward slash, and colon characters. These are forbidden in DOS\/Windows, Unix, and macOS\/iOS file systems, respectively.<\/p>\n<hr>\n<p>Tip: Don\u2019t write your own CSV code.  Use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/commons.apache.org\/proper\/commons-csv\/\"><em>Apache Commons CSV<\/em><\/a> library to read and write CSV or Tab-delimited files. It works well in my experience.<\/p>\n<hr>\n<h1>Example app<\/h1>\n<p>Here is an entire example contained in a single <code>.java<\/code> file.<\/p>\n<p>We have a few objects of our little class <code>Event<\/code>. On each scheduled run, we update the timestamp on each <code>Event<\/code> object. Then we write all the member variables of all those <code>Event<\/code> objects to a text file in CSV format using the Apache Commons CSV library. Each run is defined by a <code>Runnable<\/code> object.<\/p>\n<p>The runs are scheduled by a <code>ScheduledExecutorService<\/code> backed by a thread pool with a single thread.<\/p>\n<p>In real work I would not squeeze all this into a single <code>.java<\/code> file. But doing so here makes for a nice compact demo.<\/p>\n<pre><code>package com.basilbourque.example;\n\nimport org.apache.commons.csv.CSVFormat;\nimport org.apache.commons.csv.CSVPrinter;\n\nimport java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.time.*;\nimport java.time.format.DateTimeFormatter;\nimport java.time.temporal.ChronoUnit;\nimport java.util.List;\nimport java.util.Locale;\nimport java.util.UUID;\nimport java.util.concurrent.Executors;\nimport java.util.concurrent.ScheduledExecutorService;\nimport java.util.concurrent.TimeUnit;\n\npublic class ExportToCsv {\n    public static void main ( String[] args ) {\n        ExportToCsv app = new ExportToCsv();\n        app.doIt();\n    }\n\n    private void doIt () {\n        System.out.println( \"TRACE - doIt running at \" + ZonedDateTime.now() );\n        List&lt; Event &gt; events = List.of(\n        new Event( UUID.randomUUID() , \"alpha\" , Instant.now() ) ,\n        new Event( UUID.randomUUID() , \"beta\" , Instant.now() ) ,\n        new Event( UUID.randomUUID() , \"gamma\" , Instant.now() )\n        );\n\n        Runnable task = new Runnable() {\n            @Override\n            public void run () {\n                \/\/ Nest all this stuff of your `run` method into a `try-catch( Exception e )` to avoid having your executor cease silently.\n                Instant start = Instant.now();\n                System.out.print( \"TRACE - Runnable starting at \" + start + \". \" );\n                \/\/ Update the moment recorded in each `Event` object.\n                events.forEach( ( event ) -&gt; event.update() );\n                \/\/ Export to CSV. Using \u201cApache Commons CSV\u201d library. https:\/\/commons.apache.org\/proper\/commons-csv\/\n                \/\/ Get current moment in UTC. Lop off the seconds and fractional second. Generate text without delimiters.\n                String dateTimeLabel = OffsetDateTime.now( ZoneOffset.UTC ).truncatedTo( ChronoUnit.MINUTES ).format( DateTimeFormatter.ofPattern( \"uuuuMMdd'T'HHmmX\" , Locale.US ) );\n                String fileNamePath = \"myCsv_\" + dateTimeLabel + \".csv\";\n                try (  \/\/ Try-with-resources syntax automatically closes any passed objects implementing `AutoCloseable`, even if an exception is thrown.\n                BufferedWriter writer = new BufferedWriter( new FileWriter( fileNamePath ) ) ;\n                CSVPrinter csvPrinter = new CSVPrinter( writer , CSVFormat.DEFAULT.withHeader( \"Id\" , \"Name\" , \"When\" ) ) ;\n                ) {\n                    for ( Event event : events ) {\n                        csvPrinter.printRecord( event.id , event.name , event.when );\n                    }\n                    csvPrinter.flush();\n                } catch ( IOException e ) {\n                    \/\/ TODO: Handle i\/o exception when creating or writing to file in storage.\n                    e.printStackTrace();\n                }\n                Instant stop = Instant.now() ;\n                System.out.println( \"Runnable ending its run at \" + start + \". Duration: \" + Duration.between( start , stop ) + \".\");\n            }\n        };\n\n        \/\/ Schedule this task. Currently set to run every two minutes, ending after 20 minutes. Adjust as desired.\n        ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();  \/\/ Using a single thread here, as we have only a single series of tasks to be executed, no multi-tasking. \n        try {\n            scheduledExecutorService.scheduleAtFixedRate( task , 0 , 2 , TimeUnit.MINUTES );  \/\/ Schedule our task to run every so often.\n            try {\n                Thread.sleep( TimeUnit.MINUTES.toMillis( 20 ) );  \/\/ Sleep this main thread for a while to let our task running on the background thread do its thing a few times.\n            } catch ( InterruptedException e ) {\n                System.out.println( \"TRACE - Our main thread was woken earlier than expected, and interrupted our run. \" );\n                e.printStackTrace();\n            }\n        } finally {\n            System.out.println( \"Shutting down the scheduledExecutorService at \" + ZonedDateTime.now() );  \/\/ Generally best to log in UTC, `Instant.now()`.\n            scheduledExecutorService.shutdown();  \/\/ Always shutdown your executor, as it may otherwise survive your app exiting, becoming a zombie, continuing to run endlessly.\n        }\n        System.out.println( \"App running on main thread ending at \" + Instant.now() + \".\" );\n    }\n\n    class Event {\n        public UUID id;\n        public String name;\n        public Instant when;\n\n        public Event ( UUID id , String name , Instant when ) {\n            this.id = id;\n            this.name = name;\n            this.when = when;\n        }\n\n        public void update () {\n            this.when = Instant.now();\n        }\n    }\n}\n<\/code><\/pre>\n<p>When run.<\/p>\n<blockquote>\n<p>TRACE &#8211; doIt running at 2018-09-24T20:16:25.794081-07:00[America\/Los_Angeles]<\/p>\n<p>TRACE &#8211; Runnable starting at 2018-09-25T03:16:25.832025Z. Runnable ending its run at 2018-09-25T03:16:25.832025Z. Duration: PT0.025342S.<\/p>\n<p>TRACE &#8211; Runnable starting at 2018-09-25T03:18:25.829634Z. Runnable ending its run at 2018-09-25T03:18:25.829634Z. Duration: PT0.001121S.<\/p>\n<\/blockquote>\n<p>Files seen in this screenshot.<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\"><img decoding=\"async\" src=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\" alt=\"enter image description here\"><\/a><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved CSV file generation in every 2 hours using Java <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] I am not using ScheduledExecutorService. I want simple way to solve this problem. You already have your answer: The Executors framework was added to Java to be that simple way to solve this problem. Executors abstract away the tricky messy details of handling background tasks and threading. Your should be using a ScheduledExecutorService for &#8230; <a title=\"[Solved] CSV file generation in every 2 hours using Java\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\" aria-label=\"More on [Solved] CSV file generation in every 2 hours using Java\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[483,433,323],"class_list":["post-11309","post","type-post","status-publish","format-standard","hentry","category-solved","tag-csv","tag-date","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] CSV file generation in every 2 hours using Java - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] CSV file generation in every 2 hours using Java - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] I am not using ScheduledExecutorService. I want simple way to solve this problem. You already have your answer: The Executors framework was added to Java to be that simple way to solve this problem. Executors abstract away the tricky messy details of handling background tasks and threading. Your should be using a ScheduledExecutorService for ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-25T03:16:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] CSV file generation in every 2 hours using Java\",\"datePublished\":\"2018-09-25T03:16:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\"},\"wordCount\":556,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\",\"keywords\":[\"csv\",\"date\",\"java\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\",\"name\":\"[Solved] CSV file generation in every 2 hours using Java - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\",\"datePublished\":\"2018-09-25T03:16:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] CSV file generation in every 2 hours using Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] CSV file generation in every 2 hours using Java - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] CSV file generation in every 2 hours using Java - JassWeb","og_description":"[ad_1] I am not using ScheduledExecutorService. I want simple way to solve this problem. You already have your answer: The Executors framework was added to Java to be that simple way to solve this problem. Executors abstract away the tricky messy details of handling background tasks and threading. Your should be using a ScheduledExecutorService for ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/","og_site_name":"JassWeb","article_published_time":"2018-09-25T03:16:25+00:00","og_image":[{"url":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png","type":"","width":"","height":""}],"author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] CSV file generation in every 2 hours using Java","datePublished":"2018-09-25T03:16:25+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/"},"wordCount":556,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"image":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage"},"thumbnailUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png","keywords":["csv","date","java"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/","url":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/","name":"[Solved] CSV file generation in every 2 hours using Java - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage"},"image":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage"},"thumbnailUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png","datePublished":"2018-09-25T03:16:25+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#primaryimage","url":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2022\/09\/Solved-CSV-file-generation-in-every-2-hours-using-Java.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-csv-file-generation-in-every-2-hours-using-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] CSV file generation in every 2 hours using Java"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=11309"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11309\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}